Dockerfile을 작성하고 Docker 실행하기
42Seoul/웹서버

Dockerfile을 작성하고 Docker 실행하기

Dockerfile이란?

이미지를 생성하기 위한 스크립트. docker build 명령어를 통해 이미지를 생성할 수 있습니다.

 

Dockerfile 명령어

FROM 기반이 될 이미지(ex. OS)를 지정 FROM <이미지>
MAINTAINER 작성자의 정보를 기록 MAINTAINER <작성자 <메일>>
RUN FROM의 기반 이미지 위에서 실행될 명령어 RUN <명령어>
COPY 도커 컨테이너의 경로로 파일을 복사합니다 COPY <복사 할 파일 경로> <컨테이너 경로>
CMD 컨테이너 시작 이후, 컨테이너에서 실행될 파일 CMD <실행파일> <매개변수1> ...
ENV 도커의 환경변수를 설정 ENV <환경변수 이름> <값>
EXPOSE 연결할 포트 번호를 명시 EXPOSE <포트 번호1> ...

 

Dockerfile 작성 예시

debian:buster를 기반 이미지로 하고 nginx를 설치하는 도커파일의 예시입니다.
여기서 apt-get 명령어에 -y 옵션을 주면, 사용자의 응답이 필요할 때 자동으로 yes라고 답할 수 있습니다.

FROM debian:buster

MAINTAINER sujlee <sujlee@student.42seoul.kr>

ENV HELLO "hello docker!"

RUN apt-get update
RUN apt-get upgrade -y
RUN apt-get install -y nginx
RUN echo $HELLO

COPY srcs/test.sh /root/
CMD ["/bin/bash", "/root/test.sh"]

EXPOSE 80 443

환경변수 HELLO를 echo명령어로 출력하고 있으며, test 쉘 스크립트를 컨테이너의 /root경로로 복사한 뒤 실행시키고 있습니다.

 

 

Docker 빌드/실행 명령어

 docker 빌드/실행

build Dockerfile로 이미지를 생성 docker build <Dockerfile 경로> -t <생성할 이미지 이름>
run 생성한 이미지를 기반으로 도커를 실행 docker run <이미지 이름>

 

 docker run의 옵션

-i 컨테이너와 상호 입출력 활성화
-t tty 활성화. 주로 -i옵션과 함께 사용
-p 포트를 지정
-e 환경변수를 지정하거나 값을 변경

 

Dockerfile 사용 예시

docker build . -t myimage
docker run -it -p 80:80 -p 443:443 -e HELLO="hello world!" myimage