Docker では、ボリュームは「データ ボリューム」を意味し、デフォルトの結合ファイル システムをバイパスし、通常のファイルまたはディレクトリの形式でホスト上に存在することで、永続的なデータの保存と共有を実現します。コンテナの間。
このチュートリアルの動作環境: linux7.3 システム、docker-1.13.1 バージョン、Dell G3 コンピューター。
Docker におけるボリュームとは何ですか?
Docker ボリューム (通常はデータ ボリュームと訳されます) は、永続的なデータを保存するために使用されます。 Docker コンテナで MySQL などのデータベースを実行する場合、通常は Docker Volume を介してホストにデータを保存します。これにより、MySQL コンテナが削除されてもデータはホスト上に保存され、データのセキュリティが効果的に確保されます。 。
1. Docker ボリュームの指定
docker run コマンドを使用して Docker コンテナを実行します
docker run -itd --volume /tmp/data1:/tmp/data2 --name test ubuntu bash
ubuntu イメージ Docker コンテナを作成します。
コンテナの名前は test で、-name オプションで指定します。
Docker ボリュームは –volume オプションで指定し、ホストの /tmp/data1 ディレクトリとコンテナの /tmp/data2 ディレクトリが 1 対 1 に対応します。
2. Docker ボリュームの表示
docker Inspection コマンドを使用して、Docker コンテナーの詳細情報を表示します:
docker inspect --format= '{{json .Mounts}}' test | python -m json.tool [ { "Destination": "/tmp/data2", "Mode": "", "Propagation": "", "RW": true, "Source": "/tmp/data1", "Type": "bind" } ]
–format オプションを使用して、必要なコンテナ情報を選択して表示します。 .Mount はコンテナの Docker Volume 情報です。
python -m json.tool は、出力された json 文字列をフォーマットして表示できます。
Source は、ホスト上のディレクトリ、つまり /tmp/data1 を表します。
宛先はコンテナ内のディレクトリ (/tmp/data2) です。
3. ローカル ファイルはコンテナーと同期できます
local/tmp/data1 ディレクトリに新しい hello.txt ファイルを作成します
touch /tmp/data1/hello.txt ls /tmp/data1/ hello.txt
hello.txt ファイルは、container/tmp/data2/ ディレクトリに表示されます
docker exec コマンドを使用して、コンテナ内でコマンドを実行します。
docker exec test ls /tmp/data2/ hello.txt
ローカル ディレクトリ /tmp/data1/ の変更をコンテナ ディレクトリ /tmp/data2/ に同期できることがわかります。
4. コンテナ ファイルはホストと同期できます
container/tmp/data2 ディレクトリに新しい world.txt ファイルを作成します
docker exec test touch /tmp/data2/world.txt docker exec test ls /tmp/data2/ hello.txt world.txt
world.txt ファイル host/tmp/data1/ ディレクトリに表示されます
ls /tmp/data1/ hello.txt world.txt
コンテナ ディレクトリ/tmp/data2/ の変更がホスト ディレクトリ/tmp/data1/ に同期できることがわかります。
5. 結論
Docker ボリュームは本質的にコンテナとホストの間で共有されるディレクトリまたはファイルであるため、Docker ボリューム内のデータはコンテナ間で共有できます。ホストとコンテナをリアルタイムで同期します。 Virtualbox を使用して仮想マシンを作成する場合、Docker Volume とよく似た共有ディレクトリを構成することもできます。
推奨される学習: 「docker ビデオ チュートリアル 」
以上がDocker ではボリュームとは何を意味しますか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。