인프라/Docker
[Docker] 도커파일(Dockerfile)
2juhyunju
2022. 1. 14. 16:47
도커파일(Dockerfile) 은 코드 형태의 텍스트 파일로 , 명령문을 통해 이미지를 제작할 수 있다. 일반적으로 이미지 제작 할 때 Dockerfile을 사용한다. 코드 형태로 되어 있어 버전 관리도 편하고 이미지의 기능을 파악하기도 쉽다.
Dockerfile 명령어
명령어 | 설명 |
FROM | 베이스 이미지를 지정한다. |
RUN | 실행할 명령어를 지정한다. |
WORKDIR | 작업 디렉토리를 지정한다. |
ENTRYPOINT | 컨테이너를 시작할 때 실행할 명령어를 지정한다. |
CMD | 컨테이너를 시작할 때 실행할 명령어를 지정한다. |
EXPOSE | 컨테이너 포트를 지정한다. |
COPY/ADD | 이미지를 생성할 때 파일을 추가 / 복사 한다. |
ENV | 컨테이너의 환경변수를 지정한다. |
VOLUME | 컨테이너의 볼륨을 지정한다. |
** RUN,CMD,ENTRYPOINT 는exec 방식과 shell 방식으로 사용가능하다.
또한 Run을 제외한 ,CMD,ENTRYPOINT는 Dockerfile 구문에 한번만 사용이 가능하다.
exec 방식
["yum","install","-y","httpd"]
shell 방식
yum install -y httpd
Dockerfile 생성
# mkdir docker-test
# cd docker-test
# vim Dockerfile # 도커 파일 작성
# cat Dockerfile
FROM centos:latest # 이미지 지정
MAINTAINER test # 이미지 제작자 코드의 영향없음
RUN yum -y install httpd # 컨테이너가 실행되면 해당 명령어 실행 shell 방식
COPY index.html /var/www/html/ # index.html을 컨테이너로 복사
CMD ["/usr/sbin/httpd",-"D","FOREGROUND" # 컨테이너가 매번 실행될때 마다 명령 실행 exec 방식
# docker build -t <이미지이름> . # 도커파일 빌드
# docker run -d --name <컨테이너이름> <이미지이름> # 컨테이너 실행
# docker inspect <컨테이너이름> # 도커 인스팩트 명령어로 생성된 컨테이너 정보 확인