Блокируйте порты контейнеров Docker с помощью iptables/firewalld

#docker #iptables #firewalld

Вопрос:

У меня есть развертывание docker-compose с контейнером, например:

 version: "3" services:  web:  image: nginx  ports:  - "8080:80"  

Версия докера-20.10.9, ОС-CentOS 7.

Мне нужно заблокировать доступ к порту 8080 с внешних IP-адресов, кроме указанных.

Но iptables -A INPUT -p tcp -m tcp --dport 8080 --src ! lt;IP whitelistgt; -j DROP не работает для контейнеров docker.

В системе с брандмауэром настройки public зоны не применяются для контейнеров Docker.

Цепочка ДОКЕР-ПОЛЬЗОВАТЕЛЬ не работает должным образом, потому что я должен использовать --dport 80 (внутренний порт в контейнере докера) нет dport 8080 . Но мне нужно использовать внешний порт, потому что может быть много контейнеров с внутренним портом 80, но внешний порт уникален.

Я использовал