DockerfileのVOLUMEディレクティブの目的は何ですか?

DockerfileのVOLUMEディレクティブの目的は何ですか?

ドキュメントには、VOLUMEディレクティブがマウントポイントを生成すると言われていますが、私は次のようにイメージを生成しました。

FROM alpine
RUN mkdir /myvol
RUN echo "hello world" > /myvol/greeting

mount /myvolコンテナのファイルシステムで異なるパスを使用でき、ホストシステムのデータを表示docker run -v vol:/myvol myimageできます。/var/lib/docker/vol/_data

VOLUME myvolDockerファイルに追加するとどのような違いがありますか?

答え1

Dockerfile() を実行すると、VOLUME /myvolMountpoint() が生成されます(検査を使用)。/myvoldocker run -it --rm ${YOURCONTAINER_IMAGE} /bin/bash

mount | grep myvol
/dev/mapper/host--vg-var on /myvol type ext4 (rw,relatime,data=ordered)

マウントポイントはホストコンピュータの一時Dockerボリュームになります。

de5a4052ac6f48788baf17ed66efa603eb89aa023aac7768688839ec6df7dbec/_data/the_data_within_myvol

()を実行するdocker run -v vol:/myvol myimageとボリュームも作成され、vol()下のコンテナ内のすべてのファイルがインポートされます/myvol

違いは、生成方法(Dockerfileでまたはを使用してdocker run -v)です。

関連情報