#author("2018-08-30T17:19:05+09:00","","") #author("2018-08-30T17:20:24+09:00","","") [[CentOS7]] *Docker : Dockerfile を利用する [#pdf6d0e3] Dockerfile を利用して Docker イメージを作成し Docker コンテナーを実行します。 Dockerfile には Docker コンテナーの構成内容をまとめて記述するため、構成管理にも役立ちます。 Docker ファイルでの記述フォーマットは「INSTRUCTION arguments」(指示 引数) の形となっており、INSTRUCTION には主に下記のような種類があります。 なお、INSTRUCTION の必須項目は FROM のみで、その他は任意です。FROM が指定されていれば Docker ファイルは動作します。 |INSTRUCTION|説明|h |FROM|コンテナーのベースとするイメージを指定する| |MAINTAINER|コンテナーイメージの作成者を指定する| |RUN|コマンドの実行を指定する ⇒ イメージ作成時に実行される| |CMD|コマンドの実行を指定する ⇒ コンテナー実行時に実行される &br; 「docker run」の際に実行されるが、「docker run」に引数があればそちらが優先される| |ENTRYPOINT|コマンドの実行を指定する ⇒ コンテナー実行時に実行される &br; 「docker run」の際に実行されるが、「docker run」に引数があれば、ENTRYPOINT 指定コマンドに付加される| |LABEL|コンテナーイメージのラベルを指定する| |EXPOSE|リスンするポートを指定する| |ENV|環境変数を指定する| |ADD|ファイル/ディレクトリの追加を指定する| |COPY|ファイル/ディレクトリの追加を指定する| |ADD と異なる点は、リモートURL 指定不可、アーカイブファイルを自動で展開しない| |COPY|ファイル/ディレクトリの追加を指定する &br; ADD と異なる点は、リモートURL 指定不可、アーカイブファイルを自動で展開しない| |VOLUME|マウントポイントを指定する| |USER|実行ユーザーを指定する| |WORKDIR|作業ディレクトリを指定する| **例として、httpd のインストールと index.html の追加、および httpd を 80 で起動する Dockerfile を作成します。 [#t943eedd] |BGCOLOR(black):COLOR(white):|c |[root@localhost ~]# vi Dockerfile| |&color(lime){# 新規作成};| |FROM centos &br; MAINTAINER ServerWorld <admin@hoge.com> &br; &br; RUN yum -y install httpd &br; RUN echo "Hello DockerFile" > /var/www/html/index.html &br; EXPOSE 80 &br; CMD ["-D", "FOREGROUND"] &br; ENTRYPOINT ["/usr/sbin/httpd"]| |&color(lime){# イメージのビルド ⇒ docker build -t [イメージ名]:[タグ] . };| ||[root@localhost ~]# docker build -t web_server:latest .| |[root@localhost ~]# docker build -t web_server:latest .| |Sending build context to Docker daemon 10.24 kB &br; Step 0 : FROM centos &br; ---> 7322fbe74aa5 &br; Step 1 : MAINTAINER ServerWorld <admin@hoge.com> &br; ---> Running in fa5364b3d41f &br; ---> 57d8fd36b7f7 &br; ..... &br; ..... &br; Removing intermediate container 3efa8e1dcae9 &br; Successfully built 7c39aaa338b4| |[root@localhost ~]# docker images| |REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE &br; web_server latest 7c39aaa338b4 24 seconds ago 283.9 MB &br; docker.io/centos latest ce20c473cd8a 8 weeks ago 172.3 MB| |&color(lime){# バックグラウンドでコンテナーを起動};| |[root@localhost ~]# docker run -d -p 80:80 web_server| |[root@localhost ~]# docker ps| |CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES &br; eda2b1482272 web_server "/usr/sbin/httpd -D F" 35 seconds ago Up 34 seconds 0.0.0.0:80->80/tcp mad_bhabha| |[root@node02 ~]# curl http://localhost/| |Hello DockerFile|