Docker: клиенты подсети не могут пропинговать другую подсеть

312
Sean Walsh

Я создал небольшую сеть с 2 клиентами и 2 маршрутизаторами с этим Dockerfile:

FROM ubuntu:18.04  RUN apt update && apt upgrade -y && apt install -y vim iputils-ping iproute2 

Контейнеры были созданы с помощью следующего скрипта:

#!/bin/bash  sudo docker build -t test02 .  sudo docker network create --internal --subnet=192.168.1.0/24 tunnel  sudo docker network create --internal --subnet=172.16.1.0/24 B1 sudo docker network create --internal --subnet=172.16.2.0/24 B2  sudo docker run --name R1 --hostname R1 --cap-add=ALL --net tunnel --ip="192.168.1.100" -dit test02  sudo docker run --name R2 --hostname R2 --cap-add=ALL --net tunnel --ip="192.168.1.200" -dit test02  sudo docker network connect --ip="172.16.1.254" B1 R1 sudo docker network connect --ip="172.16.2.254" B2 R2  sudo docker exec R1 ip route del default via 172.16.1.1  sudo docker exec R2 ip route del default via 172.16.2.1  sudo docker exec R1 ip route add 172.16.2.0/24 via 192.168.1.200  sudo docker exec R2 ip route add 172.16.1.0/24 via 192.168.1.100  sudo docker run --name PC1 --hostname PC1 --cap-add=ALL --net B1 --ip="172.16.1.2" -dit test02  sudo docker run --name PC2 --hostname PC2 --cap-add=ALL --net B2 --ip="172.16.2.2" -dit test02  sudo docker exec PC1 ip route del default via 172.16.1.1  sudo docker exec PC1 ip route add default via 172.16.1.254  sudo docker exec PC2 ip route del default via 172.16.2.1  sudo docker exec PC2 ip route add default via 172.16.2.254 

Все хорошо, но PC1не может пинговать PC2. Это не проблема в том lxc, где делают одинаковую конфигурацию сети PC1и PC2могут общаться.

Почему это происходит?

Версия докера: Docker version 18.06.1-ce, build e68fc7a

0

0 ответов на вопрос