공부하는 책
완벽한 IT 인프라 구축을 위한 Docker (2판)
복습을 위해 요약한 것.
목표
docker 책 5장 내용 숙지
- Docker 인프라의 구성 관리를 Dockerfile에 기술한다.
- Dockerfile을 사용한 서버 구축 및 구성 관리의 방법 학습
5.4 명령 및 데몬 실행
컨테이너 안에서 명령을 실행하려면 CMD 명령어 사용
Dockferfile에는 하나의 CMD만 기술 가능 (여러개 지정 시 마지막 명령만 유효)
5.4.1 RUN 명령
-
Exec 형식으로 기술
RUN ["/bin/bash", "-c", "apt-get install -y nginx"]
-
Shell 형식으로 기술
RUN apt-get install -y nginx
5.4.2 CMD 명령
-
Exec 형식으로 기술
CMD ["nginx", "-g", "daemon off;"]
-
Shell 형식으로 기술
CMD nginx -g 'daemon off;'
5.4.3 ENTRYPOINT 명령의 파라미터로 기술
5.4.4 데몬 실행 (ENTRYPOINT 명령)
ENTRYPOINT 명령에서 지정한 명령은 docker container run 명령을 실행했을 때 실행된다.. (Dockerfile에서 빌드한 이미지로부터 Docker 컨테이너를 시작하기 때문에)
-
Exec 형식으로 기술
ENTRYPOINT ["nginx", "-g", "daemon off;"]
-
Shell 형식으로 기술
ENTRYPOINT nginx -g 'daemon off;'
ENTRYPOINT, CMD의 차이는 docker container run 명령 실행 시의 동작에 있음!
ENTRYPOINT CMD 컨테이너에서 반드시 실행 새로운 인수로 실행 ENTRYPOINT 으로 명령 지정, CMD로 인수 지정하면 컨테이너를 실행했을 때의 기본 작동을 결정할 수 있음.
# ENTRYPOINT 와 CMD 조합한 예
# Docker 이미지 취득
FROM ubuntu:16.04
# top 실행
ENTRYPOINT ["top"]
CMD ["-d", "10"]
5.4.5 ONBUILD 명령
- 빌드 완료 후에 실행되는 명령
- ONBUILD 명령은 자신의 Dockerfile로 부터 생성한 이미지를 베이스 이미지로 한 다른 Dockerfile을 빌드할 때 실행하고 싶은 명령을 기술
ONBUILD ADD site.tar /var/www/html
5장 175~192 패스