1. Dockerネットワーク管理 1. Dockerコンテナ方式 1) Dockerが外部ネットワークにアクセスする Docker コンテナは、外部ネットワークにアクセスするためにホストの Docker0 ブリッジに接続されます。デフォルトでは、docker0 ブリッジが Docker コンテナに自動的に追加されます。 2) コンテナ間の通信には、管理者がブリッジを作成し、異なるコンテナをブリッジに接続してコンテナ間の相互アクセスを可能にする必要があります。 3) 外部ネットワーク アクセス コンテナーは、ポート マッピングまたは Docker ホスト ネットワーク構成の同期を通じて通信を実現します。 2. Dockerコンテナのネットワーク通信モード 1) ブリッジ 2) なし 3) コンテナ 4) ホスト 3. ブリッジネットワーク通信モードを構成する [root@centos01 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo <!--centos7 ソースをインストール--> [root@centos01 ~]# yum -y install docker <!--docker をインストール--> [root@centos01 ~]# systemctl start docker <!--docker を起動します--> [root@centos01 ~]# systemctl enable docker <!--起動時にdockerが自動的に起動するように設定します--> [root@centos01 ~]# echo "net.ipv4.ip_forward = 1" >> /etc/sysctl.conf <!--ルーティング機能を有効にする--> [root@centos01 ~]# sysctl -p <!--設定を更新--> ネット.ipv4.ip_forward = 1 [root@centos01 ~]# docker pull hub.c.163.com/public/centos:7.2-tools <!--イメージをダウンロード--> [root@centos01 ~]# docker images <!--イメージを表示--> リポジトリ タグ イメージ ID 作成 サイズ hub.c.163.com/public/centos 7.2-tools 4a4618db62b9 3年前 515 MB [root@centos01 ~]# docker run -d --net=bridge --name centos7.201 hub.c.163.com/public/centos:7.2-tools <!-- 作成されたコンテナのブリッジネットワーク通信を構成します。コンテナは以下を使用してインターネットにアクセスします --> b308fb5c097fd455073f2f4a280d2660e6943fe1a62d6409e8ebcd3b86469438 [root@centos01 ~]# docker ps <!--実行中のコンテナを表示--> コンテナID イメージ コマンド 作成ステータス ポート名 b308fb5c097f hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 20 秒前 19 秒前にアップ 22/tcp centos7.201 [root@centos01 ~]# ifconfig <!--DockerホストのIPアドレス情報を表示します --> docker0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 172.17.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 [root@centos01 ~]# docker exec -it centos7.201 /bin/bash <!--centos7.201 コンテナにログインします--> [root@b308fb5c097f /]# ifconfig <!--IP アドレスを表示--> eth0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 172.17.0.2 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 [root@b308fb5c097f /]# ping www.baidu.com <!--centos7.201 コンテナ ping パブリックネットワーク テスト--> PING www.a.shifen.com (39.156.66.18) 56(84) バイトのデータ。 39.156.66.18 からの 64 バイト: icmp_seq=1 ttl=50 time=18.4 ms 39.156.66.18 からの 64 バイト: icmp_seq=2 ttl=50 time=18.3 ms 39.156.66.18 からの 64 バイト: icmp_seq=3 ttl=50 time=16.9 ms [root@b308fb5c097f /]# ping 192.168.100.10 <!--ホストIPのpingテスト--> PING 192.168.100.10 (192.168.100.10) 56(84)バイトのデータ。 192.168.100.10 からの 64 バイト: icmp_seq=1 ttl=64 time=0.043 ms 192.168.100.10 からの 64 バイト: icmp_seq=2 ttl=64 time=0.086 ms 192.168.100.10 からの 64 バイト: icmp_seq=3 ttl=64 time=0.150 ms 4. 非ネットワーク通信モードを設定する [root@centos01 ~]# docker run -d --net=none --name centos7.202 hub.c.163.com/public/centos:7.2-tools <!--docker コンテナを構成するにはネットワークに接続する必要はなく、コンテナは通信できません --> e2c4837d67818e7ef4d7cedf964db21d98cabb594d12091d7f69da4e8fb3f30f [root@centos01 ~]# docker ps <!--実行中のコンテナを表示--> コンテナID イメージ コマンド 作成ステータス ポート名 e2c4837d6781 hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 57 秒前 56 秒前 centos7.202 b308fb5c097f hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 7 分前 7 分前にアップ 22/tcp centos7.201 [root@centos01 ~]# docker exec -it centos7.202 /bin/bash <!--centos7.202 コンテナにログインします--> [root@e2c4837d6781 /]# ifconfig <!--IP アドレスを表示--> lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 ネットマスク 255.0.0.0 [root@e2c4837d6781 /]# ping www.baidu.com <!-- パブリックネットワークにアクセスできないため、ping を実行してください --> ping: 不明なホスト www.baidu.com [ルート@e2c4837d6781 /]# [root@e2c4837d6781 /]# ping 192.168.100.10 <!--ホスト IP アドレスにアクセスできないため、ping を実行してください--> 接続: ネットワークにアクセスできません 5. ホストネットワーク通信モードを構成する [root@centos01 ~]# docker run -d --net=host --name centos7.203 -v /data1 hub.c.163.com/public/centos:7.2-tools <!-- 実行中のコンテナとホスト ネットワークを同期するように設定します --> 2911358be486720c4ee93c8de22cd77301236f48c5baf22ea63bb3c54450032e [root@centos01 ~]# ls /var/lib/docker/volumes/ <!--作成されたデータボリュームを表示します--> dc755f3b6036f167471435629918d06264e1c2c6a8b175426fa80da36143a87e メタデータ.db [root@centos01 ~]# docker ps <!--実行中のコンテナを表示--> コンテナID イメージ コマンド 作成ステータス ポート名 2911358be486 hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 約 1 分前 起動 約 1 分 centos7.203 e2c4837d6781 hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 15 分前 15 分前 centos7.202 b308fb5c097f hub.c.163.com/public/centos:7.2-tools "/usr/bin/supervisord" 21 分前 21 分前にアップ 22/tcp centos7.201 [root@centos01 ~]# docker exec -it centos7.203 /bin/bash <!--centos7.203 コンテナにログインします--> [root@centos01 /]# ifconfig <!--IPアドレスを表示--> docker0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 172.17.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 ens32: flags=4163<UP、BROADCAST、RUNNING、MULTICAST> mtu 1500 inet 192.168.100.10 ネットマスク 255.255.255.0 ブロードキャスト 192.168.100.255 ens34: flags=4163<UP、BROADCAST、RUNNING、MULTICAST> mtu 1500 inet 192.168.0.126 ネットマスク 255.255.255.0 ブロードキャスト 192.168.0.255 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 ネットマスク 255.0.0.0 vethc39178a: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet6 fe80::7c4b:a6ff:fe1c:a37f プレフィックス長 64 スコープID 0x20<リンク> virbr0: flags=4099<UP、ブロードキャスト、マルチキャスト> mtu 1500 inet 192.168.122.1 ネットマスク 255.255.255.0 ブロードキャスト 192.168.122.255 [root@centos01 ~]# docker exec -it centos7.203 /bin/bash <!--centos7.203 コンテナにログインします--> [root@centos01 /]# ping www.baidu.com <!-- パブリックネットワークの ping テスト --> PING www.a.shifen.com (39.156.66.14) 56(84) バイトのデータ。 39.156.66.14 からの 64 バイト: icmp_seq=1 ttl=51 time=20.0 ms 39.156.66.14 からの 64 バイト: icmp_seq=2 ttl=51 time=19.1 ms 39.156.66.14 からの 64 バイト: icmp_seq=3 ttl=51 time=15.9 ms [root@centos01 /]# ping 192.168.100.10 <!--ホストのIPアドレスをpingテスト--> PING 192.168.100.10 (192.168.100.10) 56(84)バイトのデータ。 192.168.100.10 からの 64 バイト: icmp_seq=1 ttl=64 time=0.020 ms 192.168.100.10 からの 64 バイト: icmp_seq=2 ttl=64 time=0.060 ms 192.168.100.10 からの 64 バイト: icmp_seq=3 ttl=64 time=0.030 ms <!---Centos7.203 コンテナは Nginx をインストールします--> [root@centos01 ~]# cp /mnt/nginx-1.6.0.tar.gz ./ <!--Nginx 圧縮パッケージをコピー--> [root@centos01 ~]# ls anaconda-ks.cfg 初期セットアップ-ks.cfg nginx-1.6.0.tar.gz [root@centos01 ~]# cp nginx-1.6.0.tar.gz /var/lib/docker/volumes/dc755f3b6036f167471435629918d06264e1c2c6a8b175426fa80da36143a87e/_data/ <!-- データ ボリュームを介して Nginx 圧縮パッケージを centos7.203 コンテナーに共有します --> [root@centos01 ~]# docker exec -it centos7.203 /bin/bash <!--centos7.203 コンテナにログインします--> [root@centos01 /]# ls anaconda-post.log bin data1 dev etc home lib lib64 lost+found media mnt opt proc root run sbin srv sys tmp usr var [root@centos01 /]# cd data1/ <!--ホストによって共有されているデータを表示します --> [root@centos01 data1]# ls nginx-1.6.0.tar.gz [root@centos01 /]# yum -y install pcre-devel zlib-devel <!--Nginx 依存プログラムをインストールします--> [root@centos01 /]# useradd -M -s /sbin/nologin nginx <!--Nginx ユーザーの作成と管理--> [root@centos01 /]# tar zxvf /data1/nginx-1.6.0.tar.gz -C /usr/src/ <!--Nginx パッケージを解凍します--> [root@centos01 /]#yum -y install gcc pcre-devel zlib-devel make <!--まず依存関係をインストールします--> [root@centos01 /]# cd /usr/src/nginx-1.6.0/ [root@centos01 nginx-1.6.0]# ./configure --prefix=/usr/local/nginx --user=nginx --with-http_stub_status_module && make && make install <!--Nginx を設定し、nginx をコンパイルしてインストールします--> [root@centos01 nginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ <!--Nginx 実行コマンドを最適化--> [root@centos01 nginx-1.6.0]# echo "www.docker.nginx.com" > /usr/local/nginx/html/index.html <!--Nginx ウェブサイトのホームページのコンテンツを変更します--> [root@centos01 nginx-1.6.0]# ln -s /usr/local/nginx/sbin/nginx /usr/local/sbin/ <!--centos7.203 コンテナで Nginx サービスを開始します--> [root@centos01 nginx-1.6.0]# netstat -anptu | grep nginx <!--Nginx サービスのポート番号をリッスンして、実行されているかどうかを確認します--> tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 6268/nginx: マスター [root@centos01 ~]# curl http://192.168.100.10 <!--Docker ホストが centos7.203 コンテナ内の nginx にアクセスします --> 出典: docker [root@centos01 nginx-1.6.0]# cat /usr/local/nginx/logs/access.log <!--centos7.203 コンテナ内の Nginx への正常なアクセスのログを表示します--> 192.168.100.10 - - [2020年5月12日:21:42:47 +0800] "GET / HTTP/1.1" 200 21 "-" "curl/7.29.0" 6. docker0ネットワークカードパラメータを設定する [root@centos01 ~]# ifconfig <!--dockerホストのIPアドレスを表示します --> docker0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 172.17.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 [root@centos01 ~]# systemctl stop docker <!--docker サービスを停止します--> [root@centos01 ~]# ip link set dev docker0 down <!--docker0 ブリッジを停止します--> [root@centos01 ~]# brctl delbr docker0 <!--システムのデフォルトのdocker0ブリッジを削除します--> [root@centos01 ~]# brctl addbr docker0 <!--docker0 という名前の新しいブリッジを作成します--> [root@centos01 ~]# ip addr add 192.168.20.1/24 dev dokcer0 <!-- 新しいブリッジ docker0 構成 IP アドレス --> [root@centos01 ~]# ip link set dev docker0 up <!--新しいdocker0ブリッジを開始します--> [root@centos01 ~]# vim /etc/docker/daemon.json <!--docker 構成ファイルを変更して、新しいブリッジ docker0 をロードします--> {"レジストリミラー":["https://6kx4zyno.mirror.aliyuncs.com"]} {"bip":"192.168.20.1/24"} <!--この行を追加します--> [root@centos01 ~]# systemctl start docker <!--docker サービスを開始します--> [root@centos01 ~]# ifconfig <!--docker ホストの詳細な IP 情報を表示します --> docker0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 192.168.20.1 ネットマスク 255.255.255.0 ブロードキャスト 0.0.0.0 [root@centos01 ~]# docker run -it -d --name centos7.2v1 hub.c.163.com/public/centos:7.2-tools <!--バックグラウンドで実行するコンテナを作成します--> d0b5392e60cef37f3c44d79a9fb73916720cfc44faa7b73862bee05fb2d6ce7b [root@centos01 ~]# docker exec -it centos7.2v1 /bin/bash <!--centos7.2v1 コンテナにログインします--> [root@d0b5392e60ce /]# ifconfig <!--IP アドレスの詳細を表示--> eth0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 192.168.20.2 ネットマスク 255.255.255.0 ブロードキャスト 0.0.0.0 2. Dockerネットワークの分離 1. Dockerネットワーク分離の原則 ネットワーク スペース名を管理および作成し、分離を実現するために異なるコンテナーを異なるネットワーク スペース名にロードする必要があります。ネットワーク分離はデフォルトでは構成されておらず、コンテナーにはデフォルトで docker0 ネットワーク スペース名が割り当てられます。 2. Dockerコンテナに付属するネットワーク空間名のタイプ
3. Dockerネットワーク名前空間の分離を構成する [root@centos01 ~]# docker network ls <!--docker のデフォルトのネットワーク名前空間を表示します--> ネットワーク ID 名前 ドライバー スコープ 8bb953004416 ブリッジ ブリッジ ローカル 2c18234cad82 ホスト ホスト ローカル 67860e823c36 なし null ローカル [root@centos01 ~]# docker network create -d bridge liyanxin <!--ネットワーク名前空間を作成します--> 0c69de4672ec173dc4c60b19e0bf93b361f45a804859f7bc2105d85ca83b1169 [root@centos01 ~]# docker network create -d bridge gongsunli <!--ネットワーク名前空間を作成する--> 35687468c9034262173a96e9c23e045cbb8b7ffa6648fc84e015504740815001 [root@centos01 ~]# ifconfig <!--Docker ホストのネットワーク カード情報を表示します--> br-0c69de4672ec: フラグ=4099<UP、ブロードキャスト、マルチキャスト> mtu 1500 inet 172.18.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 br-35687468c903: フラグ=4099<UP、ブロードキャスト、マルチキャスト> mtu 1500 inet 172.19.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 [root@centos01 ~]# docker run -it -d --name centos6.701 --network=liyanxin hub.c.163.com/public/centos:6.7-tools <!-- 実行中のコンテナを作成し、分離のために liyanxin ネットワーク名前空間に追加します --> b85a2d8419a98756369ddc3b78247d3d42c178e8e563a936fe973f2f6611f951 [root@centos01 ~]# docker exec -it centos6.701 /bin/bash <!--centos6.701 コンテナにログインします--> [root@b85a2d8419a9 /]# ifconfig <!--IP アドレスを表示--> eth0 リンク カプセル化:イーサネット HWaddr 02:42:AC:12:00:02 inet アドレス:172.18.0.2 Bcast:0.0.0.0 マスク:255.255.0.0 [root@centos01 ~]# docker run -it -d --name centos6.702 --network=gongsunli hub.c.163.com/public/centos:6.7-tools <!-- 実行中のコンテナを作成し、分離のために gongsunli ネットワーク名前空間に追加します --> 9af0fb7b85af3270f3c7c44b62438f436b22289ac0a7604d6ed522604b7b185f [root@centos01 ~]# docker exec -it centos6.702 /bin/bash <!--centos6.702 コンテナにログインします--> [root@9af0fb7b85af /]# ifconfig <!--IP アドレスを表示--> eth0 リンク カプセル化:イーサネット HWaddr 02:42:AC:13:00:02 inet アドレス:172.19.0.2 Bcast:0.0.0.0 マスク:255.255.0.0 3. ネットワーク分離を実現するためにブリッジを構成する 1. ネットワーク分離を実現するためにブリッジを構成する Docker ホストと他のコンテナ間のコンテナ通信を実装します。 2. ブリッジを構成してネットワーク分離の原則を実装する<br /> 物理ネットワーク カードを作成したブリッジ ネットワーク カードにブリッジします。ブリッジ ネットワーク カードの IP アドレスを構成します。実装するブリッジ ネットワーク カードをロードするコンテナーを作成します。Docker ホスト コンテナーは Docker ホスト コンテナー間で通信します。管理者はブリッジ ネットワーク カードを介して Docker ホストをリモートで管理します。 3. ネットワーク分離を実現するためにDockerブリッジを構成する [root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 <!--docker ホストの物理ネットワーク カードをブリッジ ネットワーク カード br0 にブリッジするように変更します--> タイプ=イーサネット PROXY_METHOD=なし BROWSER_ONLY=いいえ BOOTPROTO=静的 DEFROUTE=はい 名前=ens32 デバイス=ens32 ONBOOT=はい BRIDGE=br0 <!--この行を追加--> [root@centos01 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-br0 <!--br0 ブリッジを作成して生成します--> [root@centos01 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 <!--br0 ネットワーク カード設定ファイルを編集します--> TYPE=Bridge <!--この行を変更--> PROXY_METHOD=なし BROWSER_ONLY=いいえ BOOTPROTO=静的 DEFROUTE=はい NAME=br0 <!--名前を変更する--> DEVICE=br0 <!--名前を変更--> ONBOOT=はい IPADDR=192.168.100.10 <!--ホストのIPアドレスを追加します--> ネットマスク=255.255.255.0 [root@centos01 ~]# systemctl restart network <!--docker ホストのネットワーク カード サービスを再起動します--> [root@centos01 ~]# ifconfig <!--Docker ホストのネットワーク カード情報を表示します--> br0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 192.168.100.10 ネットマスク 255.255.255.0 ブロードキャスト 192.168.100.255 br-0c69de4672ec: フラグ=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 172.18.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 br-35687468c903: フラグ=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 172.19.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 docker0: flags=4099<UP、ブロードキャスト、マルチキャスト> mtu 1500 inet 172.17.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 ens32: flags=4163<UP、BROADCAST、RUNNING、MULTICAST> mtu 1500 ether 00:0c:29:18:d3:26 txqueuelen 1000 (イーサネット) ens34: flags=4163<UP、BROADCAST、RUNNING、MULTICAST> mtu 1500 inet6 fe80::4ad2:dd37:4341:5d8e プレフィックス長 64 スコープID 0x20<リンク> lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 ネットマスク 255.0.0.0 veth7b0bb5f: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet6 fe80::ccd3:86ff:fee6:5725 プレフィックス長 64 スコープID 0x20<リンク> veth7e0f471: フラグ=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet6 fe80::684c:fdff:fe13:b436 プレフィックス長 64 スコープID 0x20<リンク> virbr0: flags=4099<UP、ブロードキャスト、マルチキャスト> mtu 1500 inet 192.168.122.1 ネットマスク 255.255.255.0 ブロードキャスト 192.168.122.255 [root@centos01 ~]# yum -y install git <!--docker ホストに git をインストールします--> [root@centos01 ~]# git clone https://github.com/jpetazzo/pipework <!--docker コンテナ ネットワーク管理ツール pipework をダウンロードします--> [root@centos01 ~]# cp pipework/pipework /usr/local/bin/ <!--管理コマンドの最適化--> [root@centos01 ~]# chmod +x /usr/local/bin/pipework <!--実行権限を追加--> [root@centos01 ~]# docker run -d --name centos6.703 --network=none hub.c.163.com/public/centos:6.7-tools <!-- イメージを介してコンテナを実行します --> adea0ad48bdde947ec595382d96cba06eb6522ec046e9b3c7bfcb1edb5c84545 [root@centos01 ~]# パイプワーク br0 centos6.703 192.168.100.101/24 <!--centos6.703 コンテナの IP アドレスを設定します--> [root@centos01 ~]# docker exec -it centos6.703 /bin/bash <!--centos6.703 コンテナにログインします--> [root@adea0ad48bdd /]# ifconfig <!--IP アドレスを表示--> eth1 リンク カプセル化:イーサネット HWaddr FA:3A:9D:ED:C0:FF inet アドレス:192.168.100.101 Bcast:192.168.100.255 マスク:255.255.255.0 [root@adea0ad48bdd /]# 192.168.100.10にpingを実行 PING 192.168.100.10 (192.168.100.10) 56(84)バイトのデータ。 192.168.100.10 からの 64 バイト: icmp_seq=1 ttl=64 time=0.100 ms 192.168.100.10 からの 64 バイト: icmp_seq=2 ttl=64 time=0.097 ms 192.168.100.10 からの 64 バイト: icmp_seq=3 ttl=64 time=0.039 ms 4. DockerホストコンテナとDockerホストコンテナの通信を構成する [root@centos02 ~]# ping www.baidu.com <!--新しいサーバーを開き、パブリックネットワークに接続し、docker をインストールします--> PING www.a.shifen.com (39.156.66.18) 56(84) バイトのデータ。 39.156.66.18 からの 64 バイト (39.156.66.18): icmp_seq=1 ttl=51 time=19.5 ms 39.156.66.18 からの 64 バイト (39.156.66.18): icmp_seq=2 ttl=51 time=17.3 ms 39.156.66.18 からの 64 バイト (39.156.66.18): icmp_seq=3 ttl=51 time=18.1 ms [root@centos02 ~]# cd /etc/yum.repos.d/ [root@centos02 yum.repos.d]# ls ローカルリポジトリ [root@centos02 yum.repos.d]# wget -O /etc/yum.repos.d/CentOS-Base.repo https://mirrors.aliyun.com/repo/Centos-7.repo <!--centos7 ソースをダウンロード--> [root@centos02 ~]# yum install docker -y <!--docker をインストール--> [root@centos02 ~]# systemctl start docker <!--docker を起動します--> [root@centos02 ~]# systemctl enable docker <!--自動起動を設定する--> [root@centos02 ~]# docker pull hub.c.163.com/public/centos:6.7-tools <!--イメージをダウンロード--> [root@centos02 ~]# docker images <!--イメージを表示--> リポジトリ タグ イメージ ID 作成 サイズ hub.c.163.com/public/centos 6.7-tools b2ab0ed558bb 3年前 602 MB [root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-ens32 <!--Docker ホストのネットワーク カード構成情報を変更して、br0 ネットワーク カードにブリッジします --> タイプ=イーサネット PROXY_METHOD=なし BROWSER_ONLY=いいえ BOOTPROTO=静的 DEFROUTE=はい 名前=ens32 デバイス=ens32 ONBOOT=はい BRIDGE=br0 <!--この行を追加--> [root@centos02 ~]# cp /etc/sysconfig/network-scripts/ifcfg-ens32 /etc/sysconfig/network-scripts/ifcfg-br0 <!--br0 ブリッジを作成して生成します--> [root@centos02 ~]# vim /etc/sysconfig/network-scripts/ifcfg-br0 <!--br0 ネットワーク カード設定ファイルを編集します--> TYPE=Bridge <!--Bridge に変更--> PROXY_METHOD=なし BROWSER_ONLY=いいえ BOOTPROTO=静的 DEFROUTE=はい NAME=br0 <!--名前を変更する--> DEVICE=br0 <!--br0 に変更--> ONBOOT=はい IPADDR=192.168.100.20 <!--ホストのIPアドレスを追加します--> ネットマスク=255.255.255.0 [root@centos02 ~]# systemctl restart network <!--docker ホストのネットワーク カード サービスを再起動します--> [root@centos02 ~]# ifconfig <!--Docker ホストのネットワーク カード情報を表示します--> br0: flags=4163<UP、ブロードキャスト、実行中、マルチキャスト> mtu 1500 inet 192.168.100.20 ネットマスク 255.255.255.0 ブロードキャスト 192.168.100.255 docker0: flags=4099<UP、ブロードキャスト、マルチキャスト> mtu 1500 inet 172.17.0.1 ネットマスク 255.255.0.0 ブロードキャスト 0.0.0.0 ens32: flags=4163<UP、BROADCAST、RUNNING、MULTICAST> mtu 1500 ether 00:0c:29:97:5c:9f txqueuelen 1000 (イーサネット) ens34: flags=4163<UP、BROADCAST、RUNNING、MULTICAST> mtu 1500 inet 192.168.0.104 ネットマスク 255.255.255.0 ブロードキャスト 192.168.0.255 lo: flags=73<UP,LOOPBACK,RUNNING> mtu 65536 inet 127.0.0.1 ネットマスク 255.0.0.0 virbr0: flags=4099<UP、ブロードキャスト、マルチキャスト> mtu 1500 inet 192.168.122.1 ネットマスク 255.255.255.0 ブロードキャスト 192.168.122.255 [root@centos02 ~]# yum -y install git <!--git をインストール--> [root@centos02 ~]# git clone https://github.com/jpetazzo/pipework <!--docker コンテナ ネットワーク管理ツール pipework をダウンロードします--> [root@centos02 ~]# cp pipework/pipework /usr/local/bin/ <!--管理コマンドの最適化--> [root@centos02 ~]# chmod +x /usr/local/bin/pipework <!--実行権限を追加--> [root@centos02 ~]# docker run -d --name centos6.7 --network=none hub.c.163.com/public/centos:6.7-tools <!-- コンテナを実行します --> abec0a6bd3822a2fd702dc44d1cf3043648aadd1a661e577c23701e30ee9df7a [root@centos02 ~]# パイプワーク br0 centos6.7 192.168.100.102/24 <!--centos6.7 コンテナの IP アドレスを設定します--> [root@centos02 ~]# docker exec -it centos6.7 /bin/bash <!--centos6.7 コンテナにログイン--> [root@abec0a6bd382 /]# ifconfig <!--IP アドレスを表示--> eth1 リンク カプセル化:イーサネット HWaddr EE:01:B7:99:90:1C inet アドレス:192.168.100.102 Bcast:192.168.100.255 マスク:255.255.255.0 [root@abec0a6bd382 /]# 192.168.100.101 にpingを実行 <!----> PING 192.168.100.101 (192.168.100.101) 56(84) バイトのデータ。 192.168.100.101 からの 64 バイト: icmp_seq=1 ttl=64 time=0.660 ms 192.168.100.101 からの 64 バイト: icmp_seq=2 ttl=64 time=0.865 ms 192.168.100.101 からの 64 バイト: icmp_seq=3 ttl=64 time=0.382 ms [root@abec0a6bd382 /]# 192.168.100.10 にpingを実行 <!----> PING 192.168.100.10 (192.168.100.10) 56(84)バイトのデータ。 192.168.100.10 からの 64 バイト: icmp_seq=1 ttl=64 time=0.632 ms 192.168.100.10 からの 64 バイト: icmp_seq=2 ttl=64 time=0.732 ms 192.168.100.10 からの 64 バイト: icmp_seq=3 ttl=64 time=0.796 ms [root@abec0a6bd382 /]# 192.168.100.20 にpingを実行 <!----> PING 192.168.100.20 (192.168.100.20) 56(84)バイトのデータ。 192.168.100.20 からの 64 バイト: icmp_seq=1 ttl=64 time=0.144 ms 192.168.100.20 からの 64 バイト: icmp_seq=2 ttl=64 time=0.094 ms 192.168.100.20 からの 64 バイト: icmp_seq=3 ttl=64 time=0.043 ms これで、Docker コンテナのネットワーク管理とネットワーク分離の実装に関するこの記事は終了です。Docker のネットワーク管理とネットワーク分離の詳細については、123WORDPRESS.COM の以前の記事を検索するか、次の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
<<: mysql 8.0.19 win10 クイックインストールチュートリアル
>>: ブラウザでビデオプレーヤーを実装するための基本的な考え方とコード
「人間中心」と「グリーンデザイン」という2つの視点から考える——デザイン業界の同僚とも議論する2つの...
負荷分散とは負荷分散は主に、専用のハードウェア デバイスまたはソフトウェア アルゴリズムによって実現...
前の記事では、deepin linux に新しいカーネルを手動でインストールする方法について説明しま...
1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...
要件: IIS 7、7.5、8.0、8.5、および ASP.NET で HTTP 応答ヘッダーを削除...
<br /> テキスト、記号、リンクの3つの側面に焦点を当て、主に中国語で、個人的な執筆...
目次1. ChildNodes属性のトラバーサル2. 要素シリーズ属性のトラバーサル以前は、chil...
1. 公式 Web サイトから MySQL 5.7 インストール パッケージ (mysql-5.7....
時々、データベース テーブルに重複したデータが大量に保存されます。これらの重複データはリソースを浪費...
ネイティブJavaScriptでスキニングを実装するための具体的なコードは参考までに。具体的な内容は...
JDBCデータベースリンクと関連メソッドのカプセル化の詳細な説明MySQL データベースを使用して、...
インターネットは絶えず進化する有機体です。長期にわたってインターネットの発展に適応できるページを構築...
目次MySQL NDB Clusterとはクラスター構築のための準備作業クラスターのデプロイを開始す...
セル - 表の内容 セルの余白 (表の余白) (cellpadding) - セルの外側の距離を表し...
CSS のアニメーション部分は JS によってブロックされますが、transform のアニメーショ...