dockerファイルはベースのイメージを元にdockerイメージを生成してくれます。
例えばCentOsのイメージにphp、apacheをインストールし、コンテナ起動時にapacheを起動状態にするイメージを作成できます。
今回は、dockerファイルで指定する基本的なコマンドを説明します。
なお、以下が理解出来た後に、当項を読むことをお勧めします。
目次
イメージ作成
dockerファイルからdockerイメージを作成します。
dockerイメージの作成には buildコマンド を使用します。
dockerfile というファイル名で任意のディレクトリにファイルを保存し、dockerfile が存在するディレクトリのパスを指定し buildコマンド を実行します。
buildする際にdockerイメージに名前を指定します。”イメージ名:タグ名”の形式です。
以下は、カレントディレクトリに dockerfile が存在し、dockerイメージの名前を”php7.1″としタグ名を”1″として、 buildコマンド を実行する例です。
docker build -t php71:1 .
dockerfileの例
以下はdockerfileの例になります。
なお、このdocekrファイルはビルドに失敗するので使用しないで下さい。
# イメージを指定する。
FROM amazonlinux
# ビルド時のコマンド実行(wgetをインストールする。)
RUN yum install -y wget
# コンテナへファイルを追加する。
ADD ./composer-install.sh /home/tmp/composer-install.sh
# コンテナへファイルをコピーする。
COPY ./composer-install.sh /home/tmp/composer-install.sh
#ポート80を開ける。
EXPOSE 80
#コンテナを起動した時にapache起動する。
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
以降は、dockerファイルの内容についての説明となります。
ベースイメージ
使用するイメージを指定します。
“イメージ名:タグ名”で指定できます。
タグ名は省略可能です。
以下の例は docker hub で公開されているamazonLinuxイメージを使用します。
FROM amazonlinux
ビルド時のコマンド実行
RUNコマンド は、buildコマンド を実行する際に、実行されるコマンドを指定出来ます。
RUNコマンド は複数回使用出来ます。
以下は yumを使用してwgetをインストールする例です。
RUN yum install -y wget
ファイルの追加
ADDコマンド でホストOSのファイルをコンテナに追加出来ます。
ADDコマンド の場合、圧縮ファイルは自動的に解凍されます。
以下は、ホストOSに存在するシェルスクリプトをゲストOSへ追加する例です。
ADD ./composer-install.sh /home/tmp/composer-install.sh
なお、外部のファイルもコンテナに追加出来ます。
例えばGitコマンドで外部のソースコードをダウンロードしたい場合、ADDコマンド を使用します。
ファイルのコピー
COPYコマンド は、ホストOSのファイルをコピーします。
自動的に解凍を行いません。
COPY ./composer-install.sh /home/tmp/composer-install.sh
ポートの開放
ポートを開放します。
EXPOSE 80
コンテナ起動時のコマンド実行
CMDコマンド は RUNコマンド とは違い、コンテナ起動時に実行されます。
RUNコマンド と違い、1回しか指定出来ません。
以下は、コンテナ起動時にwebサーバを起動する例です。
CMD ["/usr/sbin/httpd", "-D", "FOREGROUND"]
最後に
使用可能なコマンドは他にもあります。
次回はPHP開発環境を作成する為のdockerファイルの記述例を紹介します。