Мне нужно создать один контейнер Docker и прикрепить к нему выделенный IP-адрес. Механизм Docker работает на экземпляре GCP.
Как правильно настроить сеть Docker?
на уровне GCP
Я использовал функцию alias-IP, чтобы иметь диапазон IP-адресов.
На уровне ОС
Я пытался использовать два типа сетей Docker, которые настроены на диапазон псевдонимов IP:
- Водитель моста
- Драйвер Macvlan
Контейнер имеет свой IP-адрес:
root@instance-2:~# docker inspect container01 | grep IPA
"SecondaryIPAddresses": null,
"IPAddress": "",
"IPAMConfig": null,
"IPAddress": "10.165.5.9",
Сеть Bridge Docker подключена к eth0
и имеет тот же шлюз:
root@instance-2:~# ip route | grep default
default via 10.165.0.1 dev eth0
root@instance-2:~# docker network inspect bridge02 | grep Gateway
"Gateway": "10.165.0.1"
Сетевая подсеть Docker:
root@instance-2:~# docker network inspect bridge02 | grep Subnet
"Subnet": "10.165.5.0/18",
Результаты:
1. SSHing с IP-адресом, прикрепленным к контейнеру Docker.
Ожидаемый результат: SSH к контейнеру
Фактический результат: SSH к инстанции GCP
2. Попытка пинговать изнутри Контейнера до внешнего мира и до его шлюза.
Ожидаемый результат: успешный пинг
Фактический результат: не удается пропинговать
bash-4.3# ping -c2 10.165.0.1
PING 10.165.0.1 (10.165.0.1) 56(84) bytes of data.
From 10.165.5.9 icmp_seq=1 Destination Host Unreachable
From 10.165.5.9 icmp_seq=2 Destination Host Unreachable
--- 10.165.0.1 ping statistics ---
2 packets transmitted, 0 received, +2 errors, 100% packet loss, time 1006ms
pipe 2