[DevOps] MS 공식문서로 이해하는 Docker - 1 애플리케이션

Song-YunMin·2021년 5월 27일
1

DevOps

목록 보기
3/9

본 내용은 Microsoft에서 제공하는 Docker 자습서 내용을 정리한 글입니다.
원문과 내용이 비슷하지만, Docker를 접하기에 아주 유용한 문서로 개인 학습 및 정보공유 차원에서 작성합니다.

1. Application

소스코드 준비

  • 애플리케이션을 실행하기 위해선 먼저 소스 코드를 머신으로 가져와야 함
  • 여기서는 링크에서 클론하여 진행 함
  • 실제 프로젝트의 경우, 일반적으로 리포지토리를 복제함

앱 컨테이너 이미지 빌드

  • 애플리케이션을 빌드하려면 Dockerfile 을 사용해야 함
  • Dockerfile 은 컨테이너 이미지를 만드는 데 사용되는 텍스트 기반 명령 스크립트
  1. package.json 파일과 동일한 폴더에 다음 내용으로 Dockerfile 이라는 파일을 생성

    FROM node:12-alpine
    WORKDIR /app
    COPY . .
    RUN yarn install --production
    CMD ["node", "/app/src/index.js"]
  2. Dockerfile 이 있는 디렉터리로 이동하고 $ docker build 명령을 사용하여 컨테이너 이미지를 빌드

    $ docker build -t getting-started .
  3. 이 명령은 Dockerfile 을 사용하여 새 컨테이너 이미지를 빌드한 것, 빌드하면서 많은 계층이 다운로드 되었는데 이는 node:12-alpine 이미지에서 시작하도록 명령했기 때문, 이 컴퓨터엔 해당 이미지가 없어 이미지를 다운로드 한 것

  4. 이미지가 다운로드 된 후 App에서 yarn 을 복사하고 사용하여 애플리케이션 종속성을 설치함. 또한 CMD 지시문은 해당 이미지에서 컨테이너를 시작할 떄 실행할 기본 명령을 지정함

  5. 마지막으로 -t 플래그가 이미지에 '태그' 를 지정함. 이는 사람이 읽을 수 있는 최종 이미지 이름이라고 생각하면 됨. 이미지 이름을 getting-started 로 지정했기 때문에 컨테이너를 실행할 때 해당 이미지를 가리킬 수 있음

  6. docker build 명령의 끝에 있는 . 는 현재 디렉터리에서 Dockerfile 을 찾도록 Docker에 지시합니다.

앱 컨테이너 시작

이미지는 준비되었으므로 애플리케이션을 실행해야 합니다.

이는 docker run 명령을 사용하면 됩니다.

  1. docker run 명령을 사용하여 컨테이너를 시작하고 방금 만든 이미지의 이름을 지정합니다.

    $ docker run -dp 3000:3000 getting-started

    -d 플래그 : 백그라운드에서 '분리' 모드로 새 컨테이너를 실행

    -p 플래그 : 호스트의 포트 3000과 컨테이너의 포트 3000간에 매핑을 만들어 냄 이 경우에 포트 매핑이 없으면 애플리케이션에 액세스 할 수 없음

  2. 웹 브라우저 http://localhost:3000 을 열면 App이 표시 됨

  3. 정상 작동을 테스트함

Reference

Docker 자습서 1부

profile
고독한 서버 개발 3년차

0개의 댓글