Dockerのお勉強#3
はじめに
DockerのインタラクティブなチュートリアルBuilding Container Imagesをやった。
FROMコマンド
イメージのベースを指定できる。Dockerfileは、必ずFROMから始まる。
FROMよりも先に記述できるARGコマンドは、FROMに使う引数を宣言するもの。
FROM <image-name>:<tag>
RUNコマンド
コマンドプロンプトと同じように、任意のコマンドを実行でき、その結果はイメージに保存される。 不要なファイルを残さないように、注意がする必要がある。
各命令は個別に実行されるため、各RUNはお互いに影響しあわない。
COPYコマンド
Dockerfileがあるディレクトリからコンテナのイメージにファイルをコピーできるコマンド。
COPY index.html /usr/share/nginx/html/index.html
EXPOSE
アプリケーションとして、どのポートを開くかをDockerfileに書くことができる。
EXPOSE 80 443
EXPOSE 7000-8000
CMD
CMDは、コンテナがローンチされたときに実行されるコマンドを定義できる。
# nginx -g daemon off;
CMD ["nginx", "-g", "daemon off;"]
おまけ
Dockerfile公式リファレンスによると,大文字はコマンド、小文字は引数という慣習があるとのこと。
パーサーディレクティブ
Dockerfileの解析ルールを指定できる方法が用意されている。 FROMコマンドよりも前に記述しなければならず、パーサーディレクティブの後ろに空白行を入れる、同じパーサーディレクティブを指定した場合は無効など細かいルールがある。
リファレンスの例では、Windowsのパス解析でエスケープする文字列を指定する話が書いてある。
# escape=`
FROM microsoft/nanoserver
COPY testfile.txt c:\
RUN dir c:\