Dockerコンテナは外部ネットワークで通信できません。

Dockerコンテナは外部ネットワークで通信できません。

VMwareでホストされているDockerホスト(仮想マシン)があります。 Dockerホストには2つのネットワークインターフェイスがあります。 ens160とens192

  • ens192が汎用IPアドレスを設定しました。
  • ens160はIPアドレスを持たず、無差別モードが有効になっています。
  • vmwareのポートグループにも無差別モードがオンになっています。
  • IP転送が有効になっています。net.ipv4.ip_forward=1
  • Dockerhostのファイアウォールがオフになっています。

相互作用

[root@dockerone ~]# netstat -i
Kernel Interface table
Iface      MTU    RX-OK RX-ERR RX-DRP RX-OVR    TX-OK TX-ERR TX-DRP TX-OVR Flg
docker0   1500      393      0      0 0          1405      0      0      0 BMRU
ens160    1500 16034090      0     89 0          1255      0      0      0 BMPRU
ens192    1500    96324      0      1 0          6352      0      0      0 BMRU
ens160.2  1500    97658      0      0 0           362      0      0      0 BMPRU

ネットワーク作成

docker network  create  -d macvlan --subnet=10.200.131.0/24 --gateway=10.200.131.1 -o parent=ens160.231 macvlan231

コンテナの作成

docker run --name alp1 --net=macvlan231 --ip=10.200.131.191 -itd alpine /bin/sh
docker exec -it alp1 sh

docker run --name alp2  --net=macvlan231 --ip=10.200.131.190 -itd alpine /bin/sh
docker exec -it alp2 sh

2つのコンテナは互いに通信できますが、外部世界とは通信できません。

答え1

ああ、わかりました... VMware仮想スイッチポートグループでは、3つすべてを有効にする必要があります。 1. 無差別モード 2. MAC アドレスの変更 3. 偽造送信

関連情報