-
docker : step1) Application의 Container를 만들고 실행하기Full-Stack 2023. 6. 3. 02:51반응형SMALL
필요사항
docker : https://docs.docker.com/get-docker/ 에서 설치 가능합니다.
git : https://git-scm.com/ 이곳을 참고하세요.
IDE 또는 텍스트 에디터 : Visual Studio Code 추천
docker Overview
docerk를 사용하는 이유 ? 개발자들은 개발 환경과 실행 환경 배포 환경을 생각해야 한다. 이것은 얼마나 큰 스트레스인지 모른다. 내 컴퓨터에 Windows OS를 설치하고 Python, MySQL, django 등을 이용하여
icesnake.tistory.com
Application 받기
1. 다음 명령어를 사용하여 시작하기 repository를 호스트 컴퓨터에 복사합니다.
git clone https://github.com/docker/getting-started.git
2. 복사된 저장소의 내용을 봅니다. getting-started/app 디렉토리 안에는 package.json과 두 개의 하위 디렉토리(src 및 spec)가 표시되어야 합니다.
Application의 container image 빌드
conatiner image를 빌드하려면 Dockerfile을 사용해야 합니다. Dockerfile은 명령 스크립트를 포함하는 파일 확장자가 없는 단순한 텍스트 기반 파일입니다. docker는 이 스크립트를 사용하여 conatiner image를 빌드합니다.
1. app 디렉터리에서 package.json 파일과 동일한 위치에 Dockerfile이라는 파일을 만듭니다.
2. Dockerfile에 다음 내용을 입력하고 저장합니다.
# syntax=docker/dockerfile:1 FROM node:18-alpine WORKDIR /app COPY . . RUN yarn install --production CMD ["node", "src/index.js"] EXPOSE 3000
3. app 디렉토리로 이동하고 다음 명령어를 입력합니다.
docker build -t getting-started .
docker build 명령은 Dockerfile을 사용하여 새 컨테이너 이미지를 빌드합니다. Docker가 많은 "Layer"를 다운로드하는 것이 보입니다. 이것은 node:18-alpine 이미지에서 시작하겠다고 빌더에 지시했기 때문입니다. 그러나 호스트(내 컴퓨터)에 해당 파일이 없기 때문에 Docker가 docker hub로부터 이미지를 다운로드했습니다.
Docker가 이미지를 다운로드한 후 Dockerfile의 명령에의해 애플리케이션을 복사했고 yarn을 사용하여 애플리케이션의 종속성(모듈)을 설치했습니다. CMD 명령문은 이 이미지에서 컨테이너를 시작할 때 실행할 기본 명령을 지정합니다.
-t 옵션은 이미지에 태그를 지정합니다. 이미지를 식별할 수 있는 네이밍을 부여한 것입니다. 이미지 이름을 getting-started로 지정했으므로 컨테이너를 실행할 때 해당 이미지를 참조할 수 있습니다.
docker build 명령의 끝부분의 '.'은 docker에 현재 디렉터리에서 Dockerfile을 찾아야 한다고 알립니다.
app container 시작하기
다음의 간단한 명령어를 사용하여 'getting-started' image가 호스트에 잘 설치되었는지 확인합니다.
docker images
1. 이제 이미지가 있으므로 container에서 애플리케이션을 실행할 수 있습니다. 방금 만든 이미지의 이름을 지정하여 docker run 명령을 실행하고 컨테이너를 시작합니다.
docker run -dp 3000:3000 getting-started
-d 옵션을 사용하여 “detached” 모드(백그라운드에서)에서 새 컨테이너를 실행합니다. 또한 -p 옵션을 사용하여 호스트의 포트 3000번과 컨테이너의 포트 3000번을 매핑합니다. 포트를 매핑하지 않으면 어플리케이션에 접속할 수 없습니다.
2. 웹 브라우저에서 http://localhost:3000 에 접속합니다. 다음 이미지와 같은 어플리케이션이 표시되었다면 성공입니다.
3. 항목을 한,두개 추가하고 예상대로 작동하는지 확인해봅시다. 항목을 완료로 표시하고 제거할 수 있습니다. 프런트엔드가 백엔드에 항목을 잘 저장하고 있습니다.
터미널에서 다음 docker ps 명령을 실행하여 컨테이너를 나열합니다. getting-started image를 사용하고 포트 3000번에서 실행 중인 컨테이너가 표시되어야 합니다.
docker ps
반응형LIST'Full-Stack' 카테고리의 다른 글
SQL(Structured Query Language) (0) 2023.11.17 데이터베이스(Database) 개론 (0) 2023.11.16 docker : step 2) Application 업데이트 하기 (1) 2023.06.03 Introduction (0) 2023.06.03 docker Overview (0) 2023.06.03