본 내용은 Microsoft에서 제공하는 Docker 자습서 내용을 정리한 글입니다.
원문과 내용이 비슷하지만, Docker를 접하기에 아주 유용한 문서로 개인 학습 및 정보공유 차원에서 작성합니다.
1. Application
소스코드 준비
- 애플리케이션을 실행하기 위해선 먼저 소스 코드를 머신으로 가져와야 함
- 여기서는 링크에서 클론하여 진행 함
- 실제 프로젝트의 경우, 일반적으로 리포지토리를 복제함
앱 컨테이너 이미지 빌드
- 애플리케이션을 빌드하려면
Dockerfile
을 사용해야 함 Dockerfile
은 컨테이너 이미지를 만드는 데 사용되는 텍스트 기반 명령 스크립트
package.json
파일과 동일한 폴더에 다음 내용으로Dockerfile
이라는 파일을 생성FROM node:12-alpine WORKDIR /app COPY . . RUN yarn install --production CMD ["node", "/app/src/index.js"]
Dockerfile
이 있는 디렉터리로 이동하고$ docker build
명령을 사용하여 컨테이너 이미지를 빌드$ docker build -t getting-started .
이 명령은
Dockerfile
을 사용하여 새 컨테이너 이미지를 빌드한 것, 빌드하면서 많은 계층이 다운로드 되었는데 이는node:12-alpine
이미지에서 시작하도록 명령했기 때문, 이 컴퓨터엔 해당 이미지가 없어 이미지를 다운로드 한 것이미지가 다운로드 된 후 App에서
yarn
을 복사하고 사용하여 애플리케이션 종속성을 설치함. 또한CMD
지시문은 해당 이미지에서 컨테이너를 시작할 떄 실행할 기본 명령을 지정함마지막으로
-t
플래그가 이미지에 '태그' 를 지정함. 이는 사람이 읽을 수 있는 최종 이미지 이름이라고 생각하면 됨. 이미지 이름을getting-started
로 지정했기 때문에 컨테이너를 실행할 때 해당 이미지를 가리킬 수 있음docker build
명령의 끝에 있는.
는 현재 디렉터리에서Dockerfile
을 찾도록 Docker에 지시합니다.
앱 컨테이너 시작
이미지는 준비되었으므로 애플리케이션을 실행해야 합니다.
이는 docker run
명령을 사용하면 됩니다.
docker run
명령을 사용하여 컨테이너를 시작하고 방금 만든 이미지의 이름을 지정합니다.$ docker run -dp 3000:3000 getting-started
-d
플래그 : 백그라운드에서 '분리' 모드로 새 컨테이너를 실행-p
플래그 : 호스트의 포트 3000과 컨테이너의 포트 3000간에 매핑을 만들어 냄 이 경우에 포트 매핑이 없으면 애플리케이션에 액세스 할 수 없음웹 브라우저 http://localhost:3000 을 열면 App이 표시 됨
정상 작동을 테스트함
Reference
'DevOps' 카테고리의 다른 글
[k8s] 쿠버네티스와 컨테이너 한방 정리 (0) | 2024.05.14 |
---|---|
[AWS] AWS CLI 여러 계정 사용하기 (1) | 2022.05.07 |
DockerFile 작성하기 (0) | 2021.12.28 |
MonoRepo란 무엇일까? (0) | 2021.12.28 |
Docker란 무엇인가? (0) | 2021.12.28 |