명령어 | 역할 |
FROM | Docker Base Image (기반이 되는 이미지, <이미지 이름>:<태그> 형식으로 설정) |
MAINTAINER | 메인테이너 정보 |
RUN | Shell Script 또는 명령을 실행 |
CMD | 컨테이너가 실행되었을 때 명령이 실행 |
LABEL | 라벨 작성 (docker inspect 명령으로 label 확인할 수 있습니다.) |
EXPOSE | 호스트와 연결할 포트 번호를 설정한다. |
ENV | 환경변수 설정 |
ADD | 파일 / 디렉터리 추가 |
COPY | 파일 복사 |
ENTRYPOINT | 컨테이너가 시작되었을 때 스크립트 실행 |
VOLUME | 볼륨 마운트 |
USER | 명령 실행할 사용자 권한 지정 |
WORKDIR | “RUN”, “CMD”, “ENTRYPOINT” 명령이 실행될 작업 디렉터리 |
ARG | Dockerfile 내부 변수 |
ONBUILD | 다른 이미지의 Base Image로 쓰이는 경우 실행될 명령 수행 |
SHELL | Default Shell 지정 |
1. hgkim@LAPTOP-266L93S4:/usr/bin$ sudo mkdir DockerCompose # Docker가 있는 디렉토리에 DockerCompose디렉토리 생성.
2. hgkim@LAPTOP-266L93S4:/usr/bin/DockerCompose$ sudo vi Dockerfile # DockerCompose디렉토리로 이동후 도커파일 생성 및 작성.
FROM centos:7.9.2009 #base 이미지 파일. RUN yum -y update\ #이미지 시작시 컨테이너에 설치될 명령어 && yum -y install sudo\ && yum -y install net-tools\ && yum -y install libjpeg* libpng* freetype* gd-* gcc gcc-c++ gdbm-devel libtermcap-devel\ && yum -y install firewalld\ && yum -y install openssh-server openssh-clients openssh-askpass ENTRYPOINT ["/sbin/init", "systemctl start firewalld", "systemctl restart sshd.service", "systemctl start sshd.service", "systemctl status sshd.service" ] #ENTRYPOINT ["실행명령어", "인자1", "인자2", ... ] #설치시 /sbin/init을 사용해야될 명령어.
3.DockerBuild - 도커파일을 이미지 파일로 빌드시키는것. 도커컴포즈 파일을 이용하여 도커파일을 빌드하는게 일반적임.
만약 만든 이미지를 더이상 수정하지 않을꺼라면 아래 명령어를 통해 이미지 생성 가능.
sudo docker build -t [만들고 싶은 이미지이름] [도커파일위치]