Устанавливаем пакеты и включаем службу
yum install firewalld -y
sudo systemctl start firewalld
sudo systemctl enable firewalld
sudo systemctl status firewalld
Удаляем цепочку DOCKER-USER
firewall-cmd --permanent --direct --remove-chain ipv4 filter DOCKER-USER
Удаляем правила DOCKER-USER
firewall-cmd --permanent --direct --remove-rules ipv4 filter DOCKER-USER
Добавляем DOCKER-USER цепочку в firewalld
firewall-cmd --permanent --direct --add-chain ipv4 filter DOCKER-USER
Добавляем правила (замените xxx.xxx.xxx.xxx/xx на свою сеть докера во втором правиле и ваш внешний ip и порт в третьем правиле )
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -m conntrack --ctstate RELATED,ESTABLISHED -j ACCEPT -m comment --comment "This allows docker containers to connect to the outside world"
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -j RETURN -s xxx.xxx.xxx.xxx/xx -m comment --comment "allow internal docker communication"
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -p tcp -m multiport --dports xxxxx -s xxx.xxx.xxx.xxx/xx -j ACCEPT -m comment --comment "my allowed ip address to xxxxx ports"
Добавьте все сети, а затем запустите эту команду, чтобы заблокировать весь другой трафик
firewall-cmd --permanent --direct --add-rule ipv4 filter DOCKER-USER 0 -j REJECT -m comment --comment "reject all other traffic"
Перезапуск служб
systemctl stop docker
systemctl stop firewalld
systemctl start firewalld
systemctl start docker