データセンタープログラミング09(3)


09-ドッキング・ファイルと画像の作成


🔴 Dockerファイルの意味は?
◽ Docker-file
: "A Dockerfile is a text document that contains all the commands a user could call on the command line to assemble an image."
eユーザがコマンドラインから画像を合成するために呼び出すことができるすべてのコマンドを含む文書ドキュメント.
◽ Using docker build
: "Users can create an automated build that executes several command-line instructions in succession."
「101 dockerコンストラクション」を使用すると、複数のコマンドラインコマンドを連続的に実行する自動コンストラクションを作成できます.
🔹 すなわち、ドッキングファイルは、コンテナ画像を作成するためのテキストベースの説明のスクリプトである.
®参考文献:https://docs.docker.com/engine/reference/builder/
🟠 DOKERファイル命令?
  • FROM:画像を指定するコマンド
  • LABEL:バージョン情報や画像の説明を記述するコマンド
  • CMD:dockerコンテナ起動時に実行するshellコマンドを指定するコマンド
  • RUN:docker画像を生成する前に実行するshellコマンド
  • ENTRYPOINT:埠頭コンテナ起動時に実行する命令
  • EXPOSE:埠頭コンテナ公開港設置命令語
  • ENV:埠頭コンテナ内部で使用する環境変数を特定するコマンド
  • WORKDIR:Dockerコンテナ作業ディレクトリの設定命令
  • COPY:dockerクライアントの現在のディレクトリからファイルを追加するコマンド
  • ADD:dockerイメージにファイルとディレクトリまたは特定のURLのデータを追加するコマンド
  • SHELL:shellプログラムを指定するコマンド(CMDコマンドで代用可能)
  • ARG:dockerfile内に必要な変数を設定するコマンド
  • USER:docker image&コンテナで動作するユーザIDを指定するコマンド
  • ONBUILD:新画像生成時に実行するコマンド
  • VOLUME:dockerイメージにボリュームを生成するコマンド
  • 🟡 マルチグラム波の一生性と画像の構築例1
    # ubuntu:14.04 태그 값 (FROM <이미지 이름>:<태그>)
    FROM ubuntu:14.04
    MAINTAINER:
    # RUN은 Dockerfile이 이미지를 생성하는 과정에서 실행될 명령어
    RUN apt-get update
    RUN apt-get install -y nginx
    RUN echo "this is a ubuntu container"
    # 명령을 실행하기 위한 디렉토리를 지정
    WORKDIR /etc/nginx
    # 이미지에 포함되어 있는 SW를 실행하는데 사용
    CMD ["nginx", "-g", "daemon off;"]
    # container가 연결을 받는 port
    EXPOSE 80
    docker build --tag myubuntu:1.0 .
    docker image ls
    docker run --name myubuntu-nginx -d -p 4000:80 myubuntu:1.0
    docker container ls
    docker stats
    # localhost:4000
    🟤 ドクパの一生性と画像の構築例2
    # 이미지 이름을 'ubuntu'로 함
    FROM ubuntu
    # Dockerfile이 이미지를 생성하는 과정에서 업데이트, nginx를 설치 후 자동으로 'yes'함 (터미널에서 아래의 명령을 실행)
    # apt-get은 리눅스 배포판 중의 하나인 우분투에서 사용할 수 있는 일종의 앱스토어
    # update는 설치할 수 있는 프로그램들의 목록을 최신상태로 갱신
    RUN apt-get update
    RUN apt-get install nginx -y
    # 웹브라우저가 요청했을 때 웹서버가 웹페이지의 파일을 찾는 디렉토리
    COPY index.html /var/www/html/
    # port = 80
    EXPOSE 80
    # 서버 실행
    CMD ["nginx","-g","daemon off;"]
    docker build --tag myubuntu:1.0 .
    docker image ls
    docker run -p 5000:80 myubuntu:1.0
    docker container ls
    docker stats
    # localhost:5000
    🦒 に注意🦒
  • DockerfileにCMDが1つしかない
  • 複数指定の場合は最後のCMDのみ