RHEL7 dockerd удаленное соединение - PullRequest
0 голосов
/ 29 мая 2019

Я изучаю возможность создания шлюза, который может запускать и останавливать док-контейнеры в системе rhel7.Я внес изменения в мой /usr/lib/systemd/system/docker.service для запуска docker на интерфейсе со следующим.

ExecStart=/usr/bin/dockerd -H fd:// -H tcp://0.0.0.0:23751 --containerd=/run/containerd/containerd.sock

Я не могу подключиться к dockerd для получения статуса контейнеров, если не отключить брандмауэр.Но если я отключу брандмауэр, я не смогу запустить conatiners.

Caused by: com.amihaiemil.docker.UnexpectedResponseException: Expected status 204 but got 500 when calling
 http://192.168.1.70:23751/v1.35/containers/e3f0f09269a699ec27bbac8a5027d1383ae15cf64b5e6b649e76be1297cc2535/start. 
Response body was {"message":"driver failed programming external connectivity on endpoint hello-service 
(eef135f889322f1899800f19612404e9d8b1f39c7866f31ca5059562aa501bf6):  
(iptables failed: iptables --wait -t nat -A DOCKER -p tcp -d 0/0 --dport 34570 -j DNAT --to-destination 192.168.10.40:8080 ! -i br-4982fe847356: iptables: No chain/target/match by that name.\n (exit status 1))"}

Я понимаю, что есть последствия запуска открытого порта TCP для Dockerd.Раньше я все защищал, я хотел бы получить представление о том, как шлюз может делать что-то подобное.

У кого-нибудь еще есть опыт, как сделать что-то подобное?

1 Ответ

0 голосов
/ 29 мая 2019

После долгих проб и ошибок я обнаружил, что firewalld блокирует этот порт.
Чтобы включить порт, выполните следующие действия.

sudo firewall-cmd --zone=public --add-port=2375/tcp

Обратите внимание, что это открывает очень большую уязвимость безопасности, как указывалось выше.В моем случае это было сделано за брандмауэром, где никакие внешние соединения не могут установить соединение с брандмауэром моей сети.Это все еще плохая идея, но в этом случае она используется для изучения некоторых концепций и отключается, когда она не используется.Пожалуйста, изучите последствия для безопасности при этом.Кроме того, брандмауэр не будет сохранять конфигурацию в приведенной выше команде, если вы не используете аргумент --permanent

...