TIL | Docker 실습2

sik2·2021년 5월 16일
1

Docker

목록 보기
4/4

도커 파일 작성하기

자주쓰는 도커 파일 명령어

FROM: 생성할 이미지의 베이스가 될 이미지를 뜻합니다. FROM 명령어는 Dockerfile을 작성할 때 반드시 한번 이상 입력해야 하며 뒤 이미지 정보는 run을 할때 사용한 이미지와 동일합니다.

MAINTAINER: 이미지를 생성한 개발자의 정보를 넣습니다. 일반적으로는 연락을 할 수 있는 이메일 같은 정보를 넣습니다.

LABEL: 이미지에 메타데이터를 추가합니다. 추후에 docker inspect를 통해서 정보를 확인할 수 있습니다.

RUN: 이미지를 만들기위해 컨테이너 내부에서 명령어를 실행합니다. 위에서는 update 후 apache2를 설치합니다. 단 설치할 때 사용되는 yes라고 대답해야하는 경우 -y를 통해 대답을 해주어야합니다.

ADD: 파일을 이미지에 추가합니다. 추가하는 파일은 Dockerfile이 위치한 디렉터리인 컨텍스트에서 가져옵니다. 가져오는 파일의 위치는

Dockerfile이 위치한 폴더에서 가져옵니다.

WORKDIR: 명령어를 실행할 디렉터리를 나타냅니다. 예를 들어 echo hello => test2.html이라고 한다면 test2.html은 WORKDIR에서 생성됩니다.

EXPOSE: Dockerfile의 빌드로 생성된 이미지에서 노출할 포트를 설정합니다. 하지만 이것을 설정한다고 무조건 host와 바인딩되는 것은 아니며 단지 80번 포트를 사용할 것임을 나타내는 것뿐입니다.

CMD: CMD는 컨테이너가 시작될 때마다 실행할 명령어를 설정하며 Dockerfile에서 한번만 사용할 수 있습니다. 위와 같이 아파치를 실행하는 명령어를 사용하여 웹 서버가 시작됩니다. 기본적으로는 /bin/bash로 설정되어 있는데 이를 덮어 씌운 것입니다.

FROM ubuntu:14.04                                   # FROM : 생성할 이미지
MAINTAINER pangsik                               # MAINTAINER : 이미지를 생성한 개발자의 정보 (1.13.0 이후 사용 X)
LABEL "purpose"="practice"                          # LABEL : 이미지에 메타데이터를 추가 (key-value 형태)
RUN apt-get update                                  # RUN : 내부에서 실행하는 명령, apt-get 업데이트
RUN apt-get install apache2 -y                      # RUN : 내부에서 실행하는 명령, apache2 설치
ADD test.html /var/www/html                         # ADD : 파일을 추가, 파일은 Dockerfile이 위치한 디렉토리에서 가져옴
WORKDIR /var/www/html                               # WORKDIR : 디렉토리 이동, cd 명령어와 동일합니다, /var/www/html로 이동
RUN ["/bin/bash", "-c", "echo hello >> test2.html"]  # RUN : 내부에서 실행하는 명령, test2.html 파일 생성
EXPOSE 80                                           # EXPOSE : Dockefile의 빌드로 생성된 이미지에서 열어줄 포트
CMD apachectl -DFOREGROUND                          # CMD : 컨테이너가 시작될 때마다 실행한 명령어, apache를 매번 실행
  • FROM : 생성할 이미지
  • MAINTAINER : 이미지를 생성한 개발자의 정보 (1.13.0 이후 사용 X)
  • LABEL : 이미지에 메타데이터를 추가 (key-value 형태)
  • RUN : 내부에서 실행하는 명령
  • ADD : 파일을 추가, 파일은 Dockerfile이 위치한 디렉토리에서 가져옴
  • WORKDIR : 디렉토리 이동, cd 명령어와 동일합니다
  • EXPOSE : Dockerfile의 빌드로 생성된 이미지에서 열어줄 포트
  • CMD : 컨테이너가 시작될 때마다 실행한 명령어

ref


[Docker] Docker File을 이용하여 Docker Image만들기

docker file 작성

Docker 정리 #1 (개념 및 간단한 명령어 정리)

Dockerfile(2) - 기초 명령어 & 빌드 명령어

Docker 정리 #8 (Dockerfile)

profile
문제해결을 즐기는 개발자

관심 있을 만한 포스트

0개의 댓글