Table of Content
この記事では、Dockerfileでファイルを取り扱うための命令を説明します。
ファイルのコピー(COPY命令)
イメージにホスト上のファイルやディレクトリをコピーするときは、COPY命令を使います。
COPY <ホストのファイルパス> <Dockerイメージのファイルパス>
COPY ["<ホストのファイルパス>" "<Dockerイメージのファイルパス>"]
ADD命令とCOPY命令はよく似ています。ADD命令はリモートファイルのダウンロードやアーカイブの解凍などの機能を持ちますが、COPY命令は、ホスト上のファイルイメージ内に「コピーする」処理だけを行います。そのため単純に、イメージ内にファイルを配置したいだけの時は、COPY命令を使います。
ボリュームのマウント(VOLUME命令)
イメージにボリュームを割り当てるときは、VOLUME命令を使います。
ホストコンピュータのファイルやディレクトリとコンテナ上のファイルやディレクトリをリンクさせます。
VOLUME ["/マウントポイント"]
VOLUME命令は、指定した名前のマウントポイントを作成し、ホストやそのほかのコンテナからボリュームの外部マウントを行います。設定できる値は、VOLUME ["/var/log/"]
のようなJSON配列、もしくはVOLUME /var/log
やVOLUME /var/log /var/db
のような複数の引数の文字を指定できます。
コンテナは永続データを保持するのに適していません。そのため、永続化が必要なデータはコンテナ外のストレージに保存するのが良いでしょう。
永続データはDockerのホストマシン上のボリュームにマウントするか、共有ストレージをボリュームとしてマウントすることが可能です。
この記事では、Dockerfileでファイルを取り扱うための方法を学びました。
次の記事以降ではこれまで説明したことを踏まえて、複数のコンテナを立ち上げて環境を構築する方法を解説します。