内部のポートを外部に公開するコンテナに対し、ホスト側でフィルタを設定するときは、変換を考慮する必要があるようです。[※1]
たとえば、次のようにポートを公開するコンテナがある場合:
$ docker ... --publish 8080:80 ...
ホスト側のフィルタで通信を拒否するときは、次のような設定になります:
# 確認 $ iptables -L DOCKER-USER # 追加 $ iptables -I DOCKER-USER -p tcp --dport 80 -m conntrack --ctorigdstport 8080 -j DROP $ iptables -I DOCKER-USER -p tcp --dport 80 -m conntrack --ctorigdstport 8080 -j REJECT # 削除 $ iptables -D DOCKER-USER -p tcp --dport 80 -m conntrack --ctorigdstport 8080 -j DROP $ iptables -D DOCKER-USER -p tcp --dport 80 -m conntrack --ctorigdstport 8080 -j REJECT
- ※1
- 参照:
- ・
- https://qiita.com/umireon/items/54e3577ccee5801e498c