Dockerコンテナボリュームについての深い理解

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コンテナボリュームの操作手順

  1. コンテナー ボリュームの作成:docker volume createコマンドを使用してコンテナー ボリュームを作成し、名前とオプションを指定できます。
  2. 起動時にボリュームを関連付けるには:docker runコマンドで、-v パラメーターを使用して、作成されたコンテナー ボリュームを関連付けます。コンテナのホストパスのマッピング関係を指定できます。
  3. コンテナ内でのボリュームの使用: コンテナのアプリケーション内で、コンテナ ボリュームをファイル システムのように使用して、データの読み取りと書き込みを行うことができます。
  4. コンテナー ボリュームの管理: docker 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 ドキュメント:ボリュームの使用

おすすめ

転載: blog.csdn.net/weixin_44183847/article/details/131851628