私はDockerのボリュームをより深く理解しようとしていますが、以下の違い/ユースケースを理解するのに苦労しています:
docker volume create
コマンドdocker run -v /path:/Host_path
VOLUME
ファイルのDockerfile
エントリVOLUME
エントリと-v
フラグを組み合わせるとどうなるか、特にわかりません。
誰かがよく理解したら、私に説明してください!
ボリュームは、/var/lib/docker/volumes/...
に保存される永続的なデータです
Dockerfileで宣言することができます。つまり、コンテナがイメージから起動されるたびに、ボリュームが作成されます(empty) -v
オプションはありません。
実行時に宣言できます docker run -v [Host-dir:]container-dir
。
2つの組み合わせ(VOLUME
+ docker run -v
)は、ホストフォルダーのコンテンツを、/var/lib/docker/volumes/...
のコンテナーによって保持されているボリュームにマウントできることを意味します。
docker volume create Dockerfileを定義してイメージを構築し、コンテナーを実行することなくボリュームを作成します。他のコンテナがそのボリュームをマウントできるようにするために使用されます。
ボリューム内の一部のコンテンツを永続化した後、コンテナを削除してから(デフォルトでは、関連するボリュームは削除されませんが、docker rm -vを使用していない場合)、そのコンテナを新しいコンテナに再接続できます(宣言同じボリューム)。
「 Docker-コンテナに接続されていないボリュームにアクセスする方法? 」を参照してください。
Docker Volume Createを使用すると、名前付きボリュームをコンテナーに簡単に再接続できます。
docker volume create --name aname
docker run -v aname:/apath --name acontainer
...
# modify data in /apath
...
docker rm acontainer
# let's mount aname volume again
docker run -v aname:/apath --name acontainer
ls /apath
# you find your data back!