として公開されていないドッカーコンテナパスにローカルディレクトリをマウントすることは何か違いがあります:VOLUME
コンテナー・パス(パスは、ボリュームとして公開されていない)、例えば宿主ディレクトリをマウント- は:
my_image
の
docker run -v /host/directory:/container/directory my_image command_to_run
Dockerfile
がVOLUME ["/container/directory"]
- ボリュームとして公開AA容器路にホストディレクトリをマウント:
my_image
の
docker run -v /host/directory:/container/directory my_image command_to_run
Dockerfile
を私は知っているVOLUME ["/container/directory"]
を含みますボリュームデータはコンテナのライフサイクルとは独立して保持されます。しかし、コンテナ内のローカルデータを処理したいので、コンテナ内のマウントポイントがボリュームであれば違いはありますか?
こんにちは、これは素晴らしい回答です。ありがとうございます。私が取り組んでいる1つのポイントがあります。イメージレベルでボリュームを定義するAfaikは、そのイメージによって生成されるデータの永続性にとって不可欠です。例えば。公式のMySQLイメージはデータを永続化するために 'VOLUME/var/lib/mysql'を指定します。このような場合、 'docker run'や' compose'でボリュームを定義することは実現できません。 – luqo33
データコンテナが共通していた場合、ドッカーイメージの 'VOLUME'構文が使用されました。 'run'や' compose'でボリュームを定義するのをやめて、コンテナ名とボリューム名でデータコンテナを参照するのを省略しました。これはランタイムを作成する必要のある名前付きボリュームに置き換えられました。ビルド時にこれらを定義する必要はなく、実行時に任意のディレクトリをボリュームにすることができます。 – BMitch