目次
Docker コンテナ ボリュームは、コンテナ間でのデータ共有と永続ストレージを可能にする強力な機能です。このブログでは、読者がコンテナ ボリュームをよりよく理解し、使用できるように、Docker コンテナ ボリュームの概念、目的、操作手順を紹介します。
1. Docker コンテナ ボリュームとは何ですか?
- コンテナ ボリュームは、コンテナとホスト間でデータを共有するために Docker によって提供されるデータ管理メカニズムです。
- コンテナ ボリュームは永続的なストレージを提供できるため、コンテナが削除または再作成されてもデータは残ります。
2. コンテナボリュームの目的
- コンテナー間でのデータの共有: 複数のコンテナーは、コンテナー ボリュームを介してデータを共有し、異なるコンテナー間のデータ対話を実現できます。
- コンテナーとホスト間でのデータの共有: コンテナー ボリュームをホスト ファイル システムに関連付けて、コンテナーの内外でデータを共有できます。
- データ永続ストレージは、コンテナ ボリュームを使用してコンテナ内のデータをホスト マシンに永続化し、コンテナの障害や削除によるデータ損失を防ぎます。
3. コンテナボリューム関連コマンド
docker volume create <volume_name> 创建容器卷
docker volume ls 查看容器卷
docker volume inspect <volume_name> 查看容器卷详情
docker volume rm <volume_name> 删除容器卷
docker run -v <volume_name>:<container_path> <image_name> 关联容器卷
4. Dockerコンテナボリュームの操作手順
- コンテナー ボリュームの作成:
docker volume create
コマンドを使用してコンテナー ボリュームを作成し、名前とオプションを指定できます。 - 起動時にボリュームを関連付けるには:
docker run
コマンドで、-v パラメーターを使用して、作成されたコンテナー ボリュームを関連付けます。コンテナのホストパスのマッピング関係を指定できます。 - コンテナ内でのボリュームの使用: コンテナのアプリケーション内で、コンテナ ボリュームをファイル システムのように使用して、データの読み取りと書き込みを行うことができます。
- コンテナー ボリュームの管理: d
ocker volume
コマンドを使用して、すべてのコンテナー ボリュームの一覧表示、使用されなくなったボリュームの削除など、コンテナー ボリュームを操作します。
5. デモンストレーション
1. コンテナボリュームを作成します。
`docker volume create 容器卷名称`: 创建默认的 Docker 容器卷,存储在 Docker 管理的卷存储区中,具有持久化存储的特性,适用于容器之间的数据共享,具有较好的移植性
`docker volume create --opt type=none --opt device=主机地址 --opt o=bind 容器卷名称`:创建与主机地址关联的卷,通过直接关联到主机的路径,实现容器与主机之间的数据共享,更加灵活但不够可移植
2. コンテナーの起動時にボリュームを関連付けます。
`docker run -v 容器卷名:对应容器内路径 镜像ID`
`docker run -d -p 8889:6379 -v 容器卷名称:/bin/container --name my-redis redis:latest` :-d 是后台运行,-p 是匹配主机和容器端口映射,-v 后面跟容器卷路径,--name容器重命名,redis:latest镜像ID和版本
3. データをデバイスに書き込みます。
`docker exec my-redis` : 进入容器
`mkdir /bin/container/a.txt` : 容器中创建一个 a.txt文件
4. 別のコンテナを起動し、同じボリュームを関連付けます。
`docker run -d -p 8890:6380-v 容器卷名称:/bin/container --name my-redis2 redis:latest` 创建另一个容器,关联该容器卷
5. データの同期を確認する
ローカルコンテナボリュームとコンテナ内のデータが同期されているかどうかを確認します
6. まとめ
1. 同じコンテナボリュームを複数のコンテナに適用でき、データが共有されます。
例: コンテナ ボリューム C を作成します。コンテナ A とコンテナ B は、それぞれコンテナ ボリューム C に関連付けられます。コンテナ A がコンテナ ボリューム C にファイルを作成すると、そのファイルはコンテナ ボリューム C とコンテナ B に同期されます。
2. コンテナの削除後も、コンテナのボリュームデータは保持されます。
例: コンテナ ボリューム C を作成します。コンテナ A とコンテナ B は、それぞれコンテナ ボリューム C に関連付けられます。後でコンテナ A とコンテナ B を削除しても、コンテナ ボリューム C は引き続き保持されます。
3. リアルタイムのデータ同期
例: コンテナ ボリューム C を作成します。コンテナ A とコンテナ B は、それぞれコンテナ ボリューム C に関連付けられます。データまたはファイルがコンテナ ボリューム C に追加された場合、それらはコンテナ A とコンテナ B に関連付けられたパスにリアルタイムで同期されます。逆に。
4. コンテナを作成してコンテナボリュームを関連付けるときに、ホストアドレスを直接関連付けることもできます。(推奨されません)
例:docker run -v 主机地址:对应容器内路径 镜像ID
利点と欠点の分析:
docker volume create
移植を容易にし、コンテナを宣伝するためにコンテナ ボリュームを作成する
docker run -v 主机地址:对应容器内路径 镜像ID
持ち運びやコンテナの共有が容易ではない
参考
Docker ドキュメント: Docker でのデータの管理
Docker ドキュメント:ボリュームの使用