Стаття тут https://serveradmin.ru/zablokirovat-dostup-k-kontejneram-docker-iz-interneta/
Переглянути набір правил на хості
iptables-L-v-n
У даному прикладі eth0 – зовнішній інтерфейс, який дивиться в інтернет. Ускладнимо завдання. Вам потрібно заборонити доступ з інтернету до контейнера, але дозволити доступ з певних ip адрес. Нам потрібно застосувати кілька правил і стежити за тим,
щоб дозволяючі правила були вищими за забороняючі. Це можна зробити звичайною нумерацією правил.
/sbin/iptables -I DOCKER-USER 2 -i eth0 -p tcp --dport 3307 -s 62.80.161.77 -j ACCEPT
/sbin/iptables -I DOCKER-USER 3 -i eth0 -p tcp --dport 3306 -j DROP
/sbin/iptables -I DOCKER-USER 3 -i eth0 -p tcp --dport 3307 -j DROP
Переглянути список правил конкретного ланцюжка з нумерацією можна командою:
iptables -L DOCKER-USER --line-numbers -v -n
Якщо вам потрібно очистити конкретний ланцюжок із правилами, використовуйте команду.
/sbin/iptables -F DOCKER-USER
Якщо захочете заодно заблокувати стороннім людям доступ по ssh, додайте наступні правила в ланцюжок INPUT.
/sbin/iptables -I INPUT 1 -p all -m state --state ESTABLISHED,RELATED -j ACCEPT
/sbin/iptables -I INPUT 2 -i eth0 -p tcp --dport 22 -s 1.2.3.4 -j ACCEPT
/sbin/iptables -I INPUT 3 -i eth0 -p tcp --dport 22 -s 5.6.7.8 -j ACCEPT
/sbin/iptables -I INPUT 4 -i eth0 -p tcp --dport 22 -j DROP