Docker 컨테이너는 외부 네트워크에서 통신할 수 없습니다.

Docker 컨테이너는 외부 네트워크에서 통신할 수 없습니다.

VMware에서 호스팅되는 Docker 호스트(가상 머신)가 있습니다. Docker 호스트에는 두 개의 네트워크 인터페이스가 있습니다. 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

두 컨테이너는 서로 통신할 수 있지만 외부 세계와는 통신할 수 없습니다.

답변1

아, 알겠습니다... VMware 가상 스위치 포트 그룹에서는 세 가지를 모두 활성화해야 합니다. 1. 무차별 모드 2. MAC 주소 변경 3. 위조 전송

관련 정보