RUN 

Dockerfile에서 리눅스의 명령어를 실행하고 싶을 때 사용한다.

 

실습1. Dockerfile 작성

  1 FROM ubuntu
  2
  3 RUN apt-get update
  4 RUN apt-get install -y nginx
  5
  6 WORKDIR /var/www/html
  7
  8 COPY ./webapp/index.html ./index.nginx-debian.html
  9
 10 ENTRYPOINT ["nginx", "-g", "daemon off;"]

 

RUN 명령어 실습을 위한 Dockerfile 작성

 

FROM ubuntu

다른 실습과 다르게 ubuntu를 base로 해서 처음부터 설치하는 방식으로 실습하는게 특징. (RUN명령어 실습을 위해서 그러신듯)

 

RUN apt-get update

RUN apt-get install -y nginx

컨테이너 실행될 때 리눅스 명령어를 실행하는 것이다.

 

 

WORKDIR

작업 디렉토리를 파라미터로 넘겨받은 경로로 설정한다. 

COPY, BASH 같은 명령어도 모두 해당 경로부터 시작된다.

 

 

COPY

HOST내용물을 CONTAINER로 복사한다.

(호스트)./webapp/index.html →  (컨테이너) /var/www/html/index.nginx-debian.html 로 복사한다.

 

 

ENTRYPOINT : 컨테이너가 실행될 때 무조건 실행되는 명령어

(ENTRYPOINT는 CMD로 대체가능하다고 하심.)

 

ENTRYPOINT에 쓰인 daemon off;는 중요하다! 백그라운드로 실행하지말고 포그라운드로 실행하라는 의미인데 nginx를 백그라운드로 실행하면 컨테이너가 실행하자마자 죽어버린다고 함. (더 이상 실행할 명령어가 없다고 판단하고...) nginx command인 "nginx -g 'daemon off;'" 가 COMMAND로 떠있어야 죽지않음!

 

실습2. 빌드하기 및 확인하기

작성된 Dockerfile을 기반으로 image를 빌드하자.

docker build -t nginx-server:2.0 ./

docker build -t [생성할이미지명][생성할태그] [Dockerfile 위치] 

 

빌드가 다되었다면 이미지가 생성되었는지 확인하자.

docker images

 

실습3. 빌드된 이미지 실행하기

docker run -d -p 8080:80 nginx-server:2.0

결과확인

+ Recent posts