よくある質問・用語集

  • もっと調べる
  • どうやって使う?

Dockerfileとは

Dockerfileとは、Dockerで作成するコンテナイメージを管理するためのファイルである。コンテナイメージは、予め用意されたコンテナイメージに、ファイルをコピーしたり、直接的な編集を行って、イメージを保存することでも作成できる。Dockerfileは、そうした変更をファイルに記述したものである。また、コンテナのデフォルトの起動コマンドなどのデフォルト設定も行うことができる。

Dockerfileを使うメリット

Dockerfileを使うと、次のようなメリットがある。

  • Dockerコンテナの仕様をファイルで管理することができる
  • Dockerコンテナの変更プロセスを自動化することができる
  • コンテナイメージに、変更内容を履歴として保持することができる
  • コンテナイメージの履歴を層(レイヤー)として管理することで、イメージを最小化することができる
  • 元となるコンテナのバージョンアップにもすぐに対応できる

Dockerfileの例

次は、もっとも単純なDockerfileの例である。
FROMには、元となるコンテナを指定する。LABELに記載した修正者は、履歴の中に保存される。COPYでは、コンテナ内にファイルをコピーする。

Dockerfileの例

FROM httpd
LABEL maintainer="admin@designet.jp"
COPY www.designet.co.jp /usr/local/apache2/htdocs

この他にも、様々な処理を記述することができる。代表的なものは次の通りである。

  • RUN   コンテナビルド時にコンテナ内でコマンドを実行する
  • CMD   コンテナのデフォルトの実行コマンドを定義する
  • ENTRYPOINT  コンテナのエントリーポイントを定義する
  • ENV   コンテナに渡す環境変数を定義する
  • EXPOSE  コンテナで利用するポート番号を定義する

Dockerコンテナの作成

Dockerfileを使って、Dockerコンテナを作成するには、docker buildコマンドを使う。

$ docker build -f Dockerfile -t httpd-designet:1.1 . ⏎
Sending build context to Docker daemon  60.99MB
Step 1/3 : FROM httpd
 ---> b7cc370ac278
Step 2/3 : LABEL maintainer="admin@designet.jp"
 ---> Running in 38dad19d8ddf
Removing intermediate container 38dad19d8ddf
 ---> 5b7b9e5425df
Step 3/3 : COPY www.designet.co.jp /usr/local/apache2/htdocs
 ---> 50401e525d20
Successfully built 50401e525d20
Successfully tagged httpd-designet:1.1

このようにして作成したコンテナには、次のように履歴が残る。

# docker image history httpd-designet:1.1 ⏎
IMAGE             CREATED           CREATED BY                                              SIZE        COMMENT
50401e525d20      26 minutes ago    /bin/sh -c #(nop) COPY dir:038c108a2ade7d54f…           60MB
5b7b9e5425df      26 minutes ago    /bin/sh -c #(nop)  LABEL maintainer=admin@designet.jp      0B
b7cc370ac278      13 days ago       /bin/sh -c #(nop)  CMD ["httpd-foreground"]                0B
<missing>         13 days ago       /bin/sh -c #(nop)  EXPOSE 80  :

【カテゴリ】:システム管理  仮想化  オープンソースソフトウェア  

  • もっと調べる
  • どうやって使う?

【共催セミナー】研修管理・運用の負担を軽減 学習管理システム(LMS)紹介セミナー

日程: 5月23日(木)Webセミナー「BigBlueButton」を使用します。
内容: 社内研修の課題を解決できる学習管理システム(LMS)について紹介します。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

Dockerfileに関連するページ(事例など)

Dockerfileとは先頭へ