2.4.1 이미지를 생성하는 방법
2.4.2 Dockerfile 작성
FROM ubuntu:14.04
MAINTAINER alicek106
LABEL "purpose"="practice"
RUN apt-get update
RUN apt-get install apche2 -y
ADD test.html /var/www/html
WORKDIR /var/www/html
RUN ["/bin/bash", "-c", "echo hello>>test2.html"]
EXPOSE 80
CMD apachectl -DFOREGROUND
2.4.3 Dockerfile 빌드
//-t옵션은 생성될 이미지의 이름을 설정함.
docker build -t mybuild:0.0 ./
//-P 옵션은 이미지에 설정된 EXPOSE의 모든 포트를 호스트에 연결하도록 설정함.
docker run -d -P --name myserver mybulid:0.0
// -f 또는 --file 옵션으로 Dockerfile의 이름을 지정할 수 있음
docker build -f Dockerfile2 -t mycache:0.0 ./
//--no-cache 옵션으로 캐쉬 사용하지 않기
docker build --no-cache -t mybuild:0.0 .
2.4.4 기타 Dockerfile 명령어
2.4.4.1 ENV, VOLUME, ARG, USER
- ENV : Dockerfile에서 사용될 환경변수 지정
- VOLUME : 빌드된 이미지로 컨테이너를 생성했을 때 호스트와 공유할 컨테이너 디렉터리 설정
- ARG : build 명령어를 실행할 때 변수 입력받아 Dockerfile 내에서 변수 값 설정
- USER : 컨테이너 내에서 사용될 사용자 계정의 이름이나 UID 설정
2.4.4.2 Onbuild, Stopsignal, Healthcheck, Shell
- ONBUILD : 빌드된 이미지를 기반으로 하는 다른 이미지가 Dockerfile로 생성될 때 실행할 명령어 추가
- STOPSIGNAL : 컨테이너가 정지될 때 사용될 시스템 콜 종류 지정
- HEALTHCHECK : 컨테이너에서 동작하는 어플리케이션의 상태를 체크하도록 설정
- SHELL : 기본으로 사용하는 쉘을 따로 지정
2.4.4.3 ADD, COPY
- COPY는 로컬의 파일만 이미지에 추가할 수 있음. ADD는 외부 URL 및 tar 파일에서도 파일을 추가할 수 있음. (COPY의 기능이 ADD에 포함)
- 어떤 파일이 추가될지 명확히 알 수 있는 COPY 사용을 권장
2.4.4.4 ENTRYPOINT, CMD
- entrypoint와 CMD는 동일하게 컨테이너가 시작될 때 수행할 명령을 지정한다는 점에서 같음
- entrypoint는 CMD를 인자로 받아 사용할 수 있는 스크립트의 역할을 할 수 있다는 점에서 다름
- entrypoint가 설정되지 않았다면 CMD에 설정된 명령어를 그대로 실행하지만, entrypoint가 설정됐다면 cmd는 단지 entrypoint에 대한 인자의 기능을 함
2.4.5 도커 허브에서 Dockerfile로 빌드
2.4.6 Dockerfile로 빌드할 때 주의할 점
- \(역슬래시)로 나눠서 가독성 높일 수 있도록 작성
- 빌드 캐시를 이용해 기존에 사용했던 이미지 레이어를 재사용
- &&로 각 RUN 명령어를 하나로 묶기 (이미지 레이어 수 줄어듬)
'개발 도서 > 시작하세요!도커' 카테고리의 다른 글
04 도커 머신 (0) | 2020.07.05 |
---|---|
03 도커 스웜 (0) | 2020.07.05 |
02 도커 엔진 - 2.3 도커 이미지 (0) | 2020.06.07 |
02 도커 엔진 - 2.2 도커 컨테이너 다루기 (0) | 2020.06.07 |
02 도커 엔진 - 2.1 도커 이미지와 컨테이너 (0) | 2020.06.07 |