Невозможно получить доступ к сети из контейнера Docker - PullRequest
0 голосов
/ 16 апреля 2020

Суть проблемы заключается в том, что если я создаю и запускаю контейнер docker (из любого изображения, я пробовал много) контейнер не имеет доступа к сети за пределами моста по умолчанию Docker создает ; даже при использовании IP-адресов (не URL-адресов / имен).

Т.е.

  • docker run --rm -it busybox ping 8.8.8.8 зависает / отказывает из-за отсутствия доступа к сети
  • docker run --rm -it busybox ping 172.17.0.1 также не удается (обратите внимание, что 172.17.0.1 - это IP docker0 на хосте, а также шлюз, установленный docker в контейнере)
  • , если я создаю два контейнера, я могу пропинговать один из другого штрафа.

NB:

  1. У меня два хоста Ubuntu (одинаковая версия), оба работают Docker 19.03.6. На одном из них (на машине разработчика) у меня нет проблемы (она работает просто отлично), на другом я делаю. Это означает, что это, скорее всего, проблема не в версии ОС и / или Docker, а в какой-то неправильной конфигурации.

  2. Это , а не проблема DNS, задаваемая в большинстве вопросы, которые я мог бы найти. На самом деле это вообще не проблема DNS. Он проявляется, когда я использую как прямые IP-адреса, так и URL-адреса.

Я использую iptables на хосте; Вот правила, на которых он не работает (они отличаются на компьютере разработчика, где сеть работает нормально, но я не могу установить здесь то же самое):

Chain INPUT (policy DROP)
target     prot opt source               destination
f2b-postfix-sasl  tcp  --  anywhere             anywhere             multiport dports smtp,urd,submission,imap3,imaps,pop3,pop3s
f2b-sshd   tcp  --  anywhere             anywhere             multiport dports ssh
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
fail2ban-ssh  tcp  --  anywhere             anywhere             multiport dports ssh
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:ssh
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:http
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:https
ACCEPT     icmp --  anywhere             anywhere             icmp echo-request
ACCEPT     udp  --  anywhere             anywhere             udp spt:ntp state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imap2 state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:imaps state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:urd state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:urd state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:submission state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:smtp state NEW,ESTABLISHED

Chain FORWARD (policy DROP)
target     prot opt source               destination
DOCKER-USER  all  --  anywhere             anywhere
DOCKER-ISOLATION-STAGE-1  all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere             ctstate RELATED,ESTABLISHED
DOCKER     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere
ACCEPT     all  --  anywhere             anywhere

Chain OUTPUT (policy ACCEPT)
target     prot opt source               destination
ACCEPT     udp  --  anywhere             anywhere             udp dpt:ntp state NEW,ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:imap2 state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:imaps state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp dpt:urd state ESTABLISHED
ACCEPT     tcp  --  anywhere             anywhere             tcp spt:smtp state ESTABLISHED

Chain DOCKER (1 references)
target     prot opt source               destination

Chain DOCKER-ISOLATION-STAGE-1 (1 references)
target     prot opt source               destination
DOCKER-ISOLATION-STAGE-2  all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-ISOLATION-STAGE-2 (1 references)
target     prot opt source               destination
DROP       all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Chain DOCKER-USER (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Chain f2b-postfix-sasl (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Chain f2b-sshd (1 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere

Chain fail2ban-ssh (2 references)
target     prot opt source               destination
RETURN     all  --  anywhere             anywhere
RETURN     all  --  anywhere             anywhere

Я не уверен, что еще нужно добавить для уточнения.

Что мне делать?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...