У меня есть два (виртуальных) сервера под управлением CentOS с установленным Docker.
Мы установили IPTables и все работает как положено.
Затем я адаптирую файл сервиса: /usr/lib/systemd/system/docker.service
И установите команду execute, чтобы не настраивать брандмауэр.
ExecStart=/usr/bin/dockerd --iptables=false
Теперь, если я запускаю докер-контейнер и пытаюсь свернуть адрес, я получаю ошибку curl: (6) Не удалось разрешить хост: google.com; Неизвестная ошибка
У меня есть следующие сети:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN mode DEFAULT group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
2: eth0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc mq state UP mode DEFAULT group default qlen 1000
link/ether 00:23:7d:e9:c3:58 brd ff:ff:ff:ff:ff:ff
3: docker0: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP mode DEFAULT group default
link/ether 02:42:ff:62:c5:5f brd ff:ff:ff:ff:ff:ff
7: vethc4abff6@if6: <BROADCAST,MULTICAST,UP,LOWER_UP> mtu 1500 qdisc noqueue master docker0 state UP mode DEFAULT group default
link/ether 02:ba:1c:a3:6d:fc brd ff:ff:ff:ff:ff:ff link-netnsid 0
И правила IPTable:
iptables -A INPUT -i docker0 -j ACCEPT
iptables -A FORWARD -i docker0 -o eth0 -j ACCEPT
iptables -A FORWARD -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT
iptables -A INPUT -m state --state ESTABLISHED,RELATED -j ACCEPT
iptables -P INPUT DROP
iptables -P FORWARD DROP
iptables -P OUTPUT ACCEPT
Я ожидал, что это позволит доступ в Интернет из контейнеров - и это, кажется, отлично работает на другом сервере CentOS.
Что мне не хватает?