ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Docker] Docker File을 이용하여 Docker Image만들기
    Server/Docker 2018. 9. 18. 02:25
    반응형

    Docker File


    Docker File이란 Docker Image를 만들기 위한 설정 파일입니다. 여러가지 명령어를 토대로 Docker File을 작성하면 설정된 내용대로 Docker Image를 만들 수 있습니다. 이전 포스트에서도 설명했듯이 Docker File을 읽을줄 안다는 것은 해당 이미지가 어떻게 구성되어 있는지 알 수 있다는 의미입니다.


    Docker File 작성 예



    $ vim Dockerfile


    FROM ubuntu:14.04

       

    # app 디렉토리 생성

    RUN mkdir -p /app


    #Docker 이미지 내부에서 RUN, CMD, ENTRYPOINT의 명령이 실행될 디렉터리를 설정합니다.

    WORKDIR /app

       

    # 현재 디렉터리에 있는 파일들을 이미지 내부 /app 디렉터리에 추가함

    ADD     . /app

     

    RUN apt-get update

    RUN apt-get install apache2

    RUN service apache2 start


    VOLUME ["/data", "/var/log/httpd"]


    # 하기 포트를 외부로 노출합니다.

    EXPOSE 80

          

    # 쉘을 사용하지 않고 컨테이너가 시작되었을 때 logbackup 스크립트를 실행

    CMD ["/app/log.backup.sh"]


    :wq!


    컨테이너에 담을 파일들은 Dockerfile 하위디렉토리에 있어야하며 Dockerfile 안에서 ADD시 절대경로는 사용 불가능 합니다.


    FROM 

    기반이 되는 이미지 레이어입니다.

    <이미지 이름>:<태그> 형식으로 작성 

    ex) ubuntu:14.04


    MAINTAINER 

    메인테이너 정보입니다.


    RUN 

    도커이미지가 생성되기 전에 수행할 쉘 명령어


    VOLUME 

    VOLUME은 디렉터리의 내용을 컨테이너에 저장하지 않고 호스트에 저장하도록 설정합니다. 

    데이터 볼륨을 호스트의 특정 디렉터리와 연결하려면 docker run 명령에서 -v 옵션을 사용해야 합니다. 

    ex) -v /root/data:/data


    CMD

    컨테이너가 시작되었을 때 실행할 실행 파일 또는 셸 스크립트입니다. 

    해당 명령어는 DockerFile내 1회만 쓸 수 있습니다.


    WORKDIR  

    CMD에서 설정한 실행 파일이 실행될 디렉터리입니다.


    EXPOSE 

    호스트와 연결할 포트 번호입니다.



    .dockerignore


    dockerignore 파일 생성시 Docker 이미지 생성 시 이미지안에 들어가지 않을 파일을 지정 할 수 있습니다.


    $ vim dockerignore


    node_modules

    npm-debug.log

    Dockerfile*

    docker-compose*

    .dockerignore

    .git

    .gitignore

    README.md

    LICENSE

    .vscode


    :wq!


    작성 된 Docker File로 Image 만들기


    $ docker build -t [만들고싶은 이미지 이름] 


    해당 명령어는 반드시 DockerFile 경로에서 입력해야 합니다.


    반응형
Designed by Tistory.