Docker でのネットワークおよびデータ管理 (Docker Swarm クラスターおよび Docker データ管理を含む)

8 Docker でのネットワークとデータの管理

8.1Docker のデフォルトのネットワーク管理

docker network ls を使用して、Docker 内のすべてのネットワークを一覧表示します

画像-20220118150210329

(1) ブリッジのネットワーク管理方法の実証

docker run -itd --name=networktest ubuntu

(2) network view コマンドを使用して、ネットワークの詳細を表示します。

画像-20220118152236357

8.1.2 カスタム ネットワークの概要

1.ブリッジネットワーク

カスタム ブリッジ駆動型ネットワークは、ホストが 1 つの小規模なネットワークに適していますが、大規模なネットワークの場合は、カスタム オーバーレイ クラスタ ネットワークの使用を検討してください。

2. Swarm クラスタのオーバーレイ ネットワーク

サービスを必要とするクラスタ内のノードにのみ適用されます

3. カスタム ネットワーク プラグイン

8.1.3 カスタム ブリッジ ネットワーク

1. カスタム ネットワークを作成する

docker network create --driver bridge isolated_w

画像-20220118153713215

2. カスタム ネットワーク管理コンテナーを使用する

docker run --network=isolated_w -itd --name=nwtest busybox

画像-20220118153922657

3. コンテナーにネットワーク管理を追加する

docker ネットワーク接続ブリッジ nwtest

4.コンテナネットワーク接続を切断します

docker network disconnect isolated_w nwtest

5. カスタム ネットワークを削除する

docker ネットワーク rm isolated_w

8.1.4 コンテナ間のネットワーク通信

1.コンテナを作成する

docker run -itd --name=container1 busybox

docker run -itd --name=container2 busybox

docker run --network=isolated_w -itd --name=container3 busybox

docker network connect isolated_w container2

2.コンテナアドレスを表示する

画像-20220118154617046

docker attach container2 から入力すると、コンテナー内に 2 つのネットワーク カードがあり、それぞれ IP アドレス 172.17.0.5 と 172.18.0.4 に対応していることがわかります。

3. コンテナ通信試験

docker attach container1

ping -w 4 172.18.0.4

画像-20220118155134117

コンテナ 2 は他のコンテナに ping を実行できます

8.2 Docker Swarm クラスタ

Docker Swarm は、Docker クライアントから直接 Docker クラスターを作成および管理できる Docker ネイティブ クラスター管理ツールです。

1. クラスターの作成と管理が容易

2.拡張可能

3. Jiqun マルチホスト ネットワーク自動拡張管理

4. サービスディスカバリ機能を提供する

5.負荷分散

6 遅延更新とサービス ロールバックのサポート

8.2.2 Docker Swarm の使用

1. 3 台の仮想マシンを準備する

画像-20220118160743396

docker を個別にインストールする

2. クラスターを作成します
docker swarm init --advertise-addr 192.168.56.10 (独自の IP アドレス)
画像-20220118160930350

画像-20220118161059500

デフォルト クラスタに関する情報を表示する

3. ワーカー ノードを DockerSwarm クラスターに追加する

To add a manager to this swarm, run the following command:

docker swarm join --token SWMTKN-1-1ra9ujfvc34cpmtii7rvgetpi9vw7cvqa7n9jmw50huiv0oet8-be2ida3oef7jph13a5ykr8uem 192.168.56.10:2377



To add a worker to this swarm, run the following command:

    docker swarm join --token SWMTKN-1-1ra9ujfvc34cpmtii7rvgetpi9vw7cvqa7n9jmw50huiv0oet8-7oy2sgq5b5o1o9xvjvt98awm4 192.168.56.10:2377

画像-20220118161702878

クラスターに正常に参加しました

画像-20220118161820267

4. サービスを Docker Swarm クラスターにデプロイする

docker service create --replicas 1 --name helloworldswarm alpine ping docker.com

サービス管理の手順は docker service で始まります コンテナー管理の手順は docker container で始まります

5. Docker swarm クラスター内のサービスを表示する

ドッカー サービス ls

docker サービスは helloworldswarm を検査します

docker サービス ps helloworldswarm

6. Docker Swarm クラスター内のサービス レプリカの数を変更する

Docker サービス スケール helloworldswarm=5

docker サービス ps helloworldswarm

画像-20220118162445213

3 つのノード上の 5 つのサービス コピーの特定の配布と操作を表示する

7. サービスの削除

docker サービス rm helloworldswarm

8. サービスへのアクセス

以前にデプロイされたサービスは、サービス ポートを外の世界に直接公開せず、外の世界は正常にアクセスできません。

画像-20220118162645355

非クラスターと比較して、overlay 駆動型ネットワークが追加されました。クラスター公開サービスのリリースでは、指定されたネットワークがない場合、デフォルトではイングレス ネットワークを使用して接続しますが、実際の開発では --replicas を使用して管理サービスのネットワークを駆動します。

(2) manager1 はカスタム ネットワークを作成します。

docker network create --driver overlay my-multi-host-network

docker service create --network my-multi-host-network --name my-web --publish 8080:80 --replicas 2 nginx画像-20220118163441560

画像-20220118163528041

このように、nginx がデプロイされます。

8.3 Docker データ管理

dockerのストレージの仕組みを理解したいなら、イメージとコンテナとデータストレージの関係から始める必要があります

dockerfile に含まれる命令によって作成されたイメージ レイヤーはレイヤーごとに重ねられ、イメージ レイヤーの上にコンテナー レイヤーが追加されます; 同じイメージに基づいて構築された複数のコンテナーはイメージを共有できますが、複数のコンテナーは共有したいと考えています。同じデータ コンテナーの外部にデータを保存します。

8.3.1 Docker データの保存方法

ボリュームはホスト ファイル システムに保存されます

bind はストレージをホストシステム上の任意の場所にマウントします

tmpfs マウントは、ホスト システムのメモリ内でのみ許可され、ホストのファイル システムには書き込まれません。

8.4 ボリューム データボリューム管理

8.4.1 ボリューム データ ボリュームの利点

データ ボリュームは、バインド マウントよりもバックアップと移行が容易です。

データ ボリュームは、Docker CLI および Docker API を使用して管理できます。

Linux および Windows コンテナーでデータ ボリュームを利用できます

複数のコンテナ間でより安全にデータを共有する

8.4.2 ボリューム データ ボリュームの使用

1. データ ボリュームの作成と管理

docker volume create my-vol

docker ボリューム ls

データ量の確認

画像-20220118183855199

データ ボリュームの削除

2.コンテナを起動してデータボリュームをマウントする

(1) ネイティブ コンテナとデータ ボリュームを表示する

docker ps -a docker ボリューム ls

画像-20220118184243495

(2) コンテナの起動とデータボリュームのマウント

docker run -d -it --name devtest --mount source=my-vol,target=/app busybox:latest

コンテナの作成時にデータ ボリュームが存在しない場合、docker が自動的に作成することに注意してください。

(3) コンテナの詳細を確認する

docker inspect コマンドを実行して、コンテナーの詳細を表示します。主にデータマウント情報を表示

(4) ディレクトリ内のコンテナファイルをrootユーザーで閲覧

画像-20220118185215885

(この記事は、マイクロサービス アーキテクチャの基礎の第 8 章のメモです)

おすすめ

転載: blog.csdn.net/qq_21561833/article/details/122764624