よくある質問・用語集

サーバ構築のデージーネットTOP > OSS情報 > コンテナ型仮想化 > Dockerfileとは

サーバ構築のデージーネットTOP > OSS情報 > よくある質問・用語集 > 用語集 > Dockerfileとは

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

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  :

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

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

【Webセミナー】VPNだけじゃない! より安心・便利なリモートワーク環境改善
セミナー

日程: 8月27日(木)Webセミナー「BigBlueButton」を使用します。
内容: ご好評につき、6月に開催したセミナーを再度開催いたします! OSSを利用したリモートワーク環境の改善方法に関するセミナーです。中心となるソフトウェアの説明の他、既存のリモートワーク環境のセキュリティを強化するために役立つ事例も紹介していきます。
ご興味のあるかたはぜひご参加ください。

セミナー申込

関連用語

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

Dockerfileとは先頭へ