Dockerfile이란 무엇인가?
Docker에서는 인프라를 Dockerfile로 구성 및 관리를 한다. 이 Dockerfile은 베이스가 되는 이미지에 소프트웨어를 설치 및 설정하며 개발한 애플리케이션의 실행 모듈을 전개하기 위한 애플리케이션 실행 기반 구성 정보를 기술한다.
Dockerfile 기본 구문
Dockerfile은 텍스트 형식의 파일이며, 에디터 등을 통해 작성한다. 확장자의 추가는 필요없으며 Dockerfile 이라는 이름의 파일에 인프라 구성 정보를 기입한다. 다른 이름의 파일로도 빌드가 가능하지만 이 이름을 명시적으로 저장해 놔야 한다.
FROM : 베이스 이미지 지정
RUN : 명령 실행
CMD : 컨테이너 실행 명령
LABEL: 라벨 설정
EXPOSE : 포트 익스포트
ENV : 환경변수
ADD : 파일 / 디렉토리 추가
COPY : 파일 복사
ENTRYPOINT : 컨테이너 실행 명령
VOLUME : 볼륨 마운트
USER : 사용자 지정
WORKDIR : 작업 디렉토리
ARG : Dockerfile 안 변수
ONBUILD : 빌드 완료 후 실행되는 명령
STOPSIGNAL : 시스템 콜 시그널 설정
HEALTHCHECK : 컨테이너 헬스 체크
SHELL : 기본 쉘 설정
# : 주석
Dockerfile 기본 작성
Docker 컨테이너를 어떤 이미지로부터 생성할지에 대한 정보를 기술해야 한다. 이 이미지를 베이스 이미지라고 부른다. 위에서 언급했듯이 베이스 이미지를 FROM을 통해서 기술해야 한다.
FROM (이미지명)
FROM (이미지명) : (태그명)
FROM (이미지명) @ (다이제스트)
이 FROM명령은 필수 항목이므로 꼭 작성해야 한다.
태그명을 생략할 시 latest 가 적용이 된다. 태그명은 히스토리 관리로 임의의 값을 붙일 수 있으니 태그만 잘 수정한다면 몇번이든 같은 이미지를 만들 수 있다.
다이제스트는 고유한 식별자라고할 수 있다.
docker image ls --digests (이미지명) 명령어를 통해서 고유한 다이제스트를 확인할 수 있다.
FROM nginx@sha256:104c7c5c54f2685f0f46f3be607ce60da7085da3eaa5ad22d3d9f01594295e9c
이렇게 다이제스트를 지정해서 nginx라는 베이스 이미지를 생성할 수 있다.
'[Docker]' 카테고리의 다른 글
Dockerfile 빌드 및 이미지 레이어 (0) | 2023.08.31 |
---|---|
tar 파일을 통해서 컨테이너 출력 및 이미지 생성하기 (0) | 2023.08.27 |
Docker 이미지 생성하는 방법 (0) | 2023.08.25 |
Docker 네트워크 (0) | 2023.08.24 |
도커 기초) 웹 서버 띄우기 (0) | 2023.08.22 |