Я хочу явно открывать порты на моем компьютере с centos 7, поэтому я настроил firewalld с drop в качестве зоны по умолчанию и мою внешнюю зону в моем общедоступном интерфейсе. Когда я бегу python -m SimpleHTTPServer 8000
и ударил коробку на порт 8000, это не удается. Но если я добавлю порт во внешнюю зону. Оно работает. Все как положено.
Однако, когда я запускаю контейнер докеров на порту 8000 и нажимаю на коробку извне, я могу получить доступ к службе. Этого я не хочу. Я хочу, чтобы это было доступно только в том случае, если я открою порт 8000 во внешней зоне.
Даже если я привяжу докер-контейнер к общедоступному адресу ящика, он все равно обойдет брандмауэр. При необходимости я могу предоставить дополнительную информацию, например, таблицы маршрутов и конфигурацию интерфейса, но я не совсем понимаю, что полезно. Хотите учиться.
На коробке есть два физических интерфейса: eth0, которому назначен общедоступный IP-адрес, и eth1, который подключен к частной сети, и я хочу, чтобы он был доступен.
EDIT SOLVED добавлен --iptables=false
к параметрам докера.
Помните, что Docker открывает порты в брандмауэре, если вы явно не сказали ему этого не делать. -
Просто нужно было добавить --iptables=false
к параметрам докера.