목차

도커파일 사용법

  • description : 도커파일 사용법
  • author : 치킨5분컷
  • email : hgkim@repia.com
  • lastupdate : 2022-11-22 Tue


사전에 설치가 필요한 프로그램

아래 명령어들은 어디서 쳐야하나?

도커파일란?

Dockerfile 명령어

명령어 역할
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 지정

Dockerfile을 통한 이미지 파일 생성 방법

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 [만들고 싶은 이미지이름] [도커파일위치] 

도커컴포즈와 도커파일을 통한 활용 방법