8 Docker でのネットワークとデータの管理
8.1Docker のデフォルトのネットワーク管理
docker network ls を使用して、Docker 内のすべてのネットワークを一覧表示します
(1) ブリッジのネットワーク管理方法の実証
docker run -itd --name=networktest ubuntu
(2) network view コマンドを使用して、ネットワークの詳細を表示します。
8.1.2 カスタム ネットワークの概要
1.ブリッジネットワーク
カスタム ブリッジ駆動型ネットワークは、ホストが 1 つの小規模なネットワークに適していますが、大規模なネットワークの場合は、カスタム オーバーレイ クラスタ ネットワークの使用を検討してください。
2. Swarm クラスタのオーバーレイ ネットワーク
サービスを必要とするクラスタ内のノードにのみ適用されます
3. カスタム ネットワーク プラグイン
8.1.3 カスタム ブリッジ ネットワーク
1. カスタム ネットワークを作成する
docker network create --driver bridge isolated_w
2. カスタム ネットワーク管理コンテナーを使用する
docker run --network=isolated_w -itd --name=nwtest busybox
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.コンテナアドレスを表示する
docker attach container2 から入力すると、コンテナー内に 2 つのネットワーク カードがあり、それぞれ IP アドレス 172.17.0.5 と 172.18.0.4 に対応していることがわかります。
3. コンテナ通信試験
docker attach container1
ping -w 4 172.18.0.4
コンテナ 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 台の仮想マシンを準備する
docker を個別にインストールする
2. クラスターを作成します
docker swarm init --advertise-addr 192.168.56.10 (独自の IP アドレス)
デフォルト クラスタに関する情報を表示する
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
クラスターに正常に参加しました
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
3 つのノード上の 5 つのサービス コピーの特定の配布と操作を表示する
7. サービスの削除
docker サービス rm helloworldswarm
8. サービスへのアクセス
以前にデプロイされたサービスは、サービス ポートを外の世界に直接公開せず、外の世界は正常にアクセスできません。
非クラスターと比較して、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
このように、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
データ量の確認
データ ボリュームの削除
2.コンテナを起動してデータボリュームをマウントする
(1) ネイティブ コンテナとデータ ボリュームを表示する
docker ps -a docker ボリューム ls
(2) コンテナの起動とデータボリュームのマウント
docker run -d -it --name devtest --mount source=my-vol,target=/app busybox:latest
コンテナの作成時にデータ ボリュームが存在しない場合、docker が自動的に作成することに注意してください。
(3) コンテナの詳細を確認する
docker inspect コマンドを実行して、コンテナーの詳細を表示します。主にデータマウント情報を表示
(4) ディレクトリ内のコンテナファイルをrootユーザーで閲覧
(この記事は、マイクロサービス アーキテクチャの基礎の第 8 章のメモです)