ドキュメントには、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 myvol
Dockerファイルに追加するとどのような違いがありますか?
答え1
Dockerfile() を実行すると、VOLUME /myvol
Mountpoint() が生成されます(検査を使用)。/myvol
docker 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
)です。