- Docker build -f Dockerfile.dev ./
- Docker run -p 3000:3000 -it <이미지 이름>
- -p 옵션 : 앞이 로컬 포트, 뒤가 컨테이너 포트
- -it 옵션 : -i 상호입출력
- -t 옵션 : tty를 활성화하여 bash 셸 사용
- 볼륨을 이용한 소스코드 변경
- 이미지를 다시 빌드하지 않고 소스코드가 반영될 수 있게 COPY 대신 Volume을 이용할 수 있다.
- COPY와 Volume의 차이
- COPY는 로컬에 있는 파일을 도커 컨테이너에 복사를 해주는 것
- Volume은 도커 컨테이너에서 로컬 머신에 있는 파일을 매핑을 시켜 참조를 해서 도커 컨테이너에서 실행하는 것
- docker run -p 3000:3000 -it -v /usr/src/app/node_modules -v $(pwd):/usr/src/app <이미지 이름>
- 첫 번째 -v 옵션 : 호스트 디렉토리 서 얘는 제외하고
- 두 번째 -v 옵션 : pwd 경로에 있는 디렉토리 혹은 파일을 /usr/src/app 경로에서 참조한다.
- 도커 컴포즈를 이용하면 긴 명령어를 줄일 수 있다!
- 컴포즈 작성 후 docker-compose up
- 도커 환경에서 test하기
- docker run -it 이미지이름 npm run test
- 테스트 소스도 추가하면 자동 반영 되면 좋겠다 ? -> 소스 코드 변경 위해 volume 이용하듯, test를 위한 컨테이너를 compose 파일에 하나 더 만들어주면 된다.
- 운영환경을 위한 도커 파일 생성
- 빌드 파일들을 생성 (build stage)
- 엔진엑스를 가동하고 첫 번째 단계에 따라 생성된 빌드 폴더의 파일들을 웹 브라우저의 요청에 따라 제공하여 준다 (run stage)
* 잘 이해 안되는 부분 ~
- build 시에 copy package.json ./를 먼저 해주면 무슨 차이인지
- 이미 다운 받은, 변경 없는 건들에 대해 다시 다운 받지 않도록 함
- 이미지 한번 만들고 지우고 다시 하면 빨리 되는 이유? 정확히 캐시 어디에 올라가는건지?
본 내용은 인프런 강의 ‘따라하면서 배우는 도커와 CI환경’ 을 듣고 정리한 내용입니다.
'Tech > Docker' 카테고리의 다른 글
Section 6. Docker Compose (0) | 2022.01.02 |
---|---|
Section 5. 도커를 이용한 간단한 Node.js 어플 만들기 (0) | 2022.01.02 |
Section 4. 직접 도커 이미지를 만들어 보기 (0) | 2022.01.02 |
Section 3. 기본적인 도커 클라이언트 명령어 알아보기 (0) | 2022.01.02 |
Section2. 도커 기본 (0) | 2022.01.02 |