Dockerfile 스크립트
- FROM : 기반 이미지 이름
- ADD : 이미지에 파일/폴더 추가
- COPY : 이미지에 파일/폴더 추가
- RUN : 빌드할 때 실행할 명령어 지정
- CMD : 컨테이너를 실행할 때 실행할 명령어 지정
- ENTRYPOINT : 컨테이너를 실행할 때 실행할 명령어 강제 지정
- ONBUILD : 이 이미지를 기반으로 다른 이미지를 빌드할 때 실행할 명령어 지정
- EXPOSE : 포트 지정
- VOLUME : 볼륨 경로 지정
- ENV : 환경변수 정의
- WORKDIR : RUN, CMD, ENTRYPOINT, ADD, COPY에 정의된 명령어를 실행하는 작업 디렉토리 지정
- SHELL : 빌드 시 사용할 셸 지정
- LABEL : 이름, 버전, 제작자 정보 등 지정
- USER : RUN, CMD, ENTRYPOINT에 정의된 명령어를 실행하는 사용자, 그룹 지정
- ARG : docker build 시 입력받는 인자 설정
- STOPSIGNAL : docker stop 시 컨테이너에 실행 중인 프로그램에 전달되는 시그널 지정
- HEALTHCHECK : 컨테이너 헬스 체크 방법 지정
컨테이너 개조
docker exec -it 컨테이너이름 /bin/bash를 실행하면 컨테이너에서 bash를 실행할 수 있다. 이를 이용해 컨테이너에서 패키지 설치 등의 작업을 실행할 수 있다. bash를 실행하는 동안에는 apache 등의 소프트웨어는 정지된다.
레지스트리
- 레지스트리 : 이미지를 배포하는 장소, 기본 포트는 5000번
-
리포지토리 : 레지스트리를 구성하는 단위
- tag : 레지스트리에 업로드 된 이미지의 태그는 레지스트리주소/리포지토리이름:버전의 형식을 띈다.
- push : 태그에 해당하는 이미지를 리포지토리에 업로드한다.
비공개 레지스트리를 만들고 싶다면 docker run -d -p 5000:5000 registry를 실행하면 된다.