Dockerでサービスをデプロイする場合でポート遮断の方法

グローバルIPを持つサーバーでサービスをデプロイする時、ネット攻撃や不正アクセスを回避するために特定なポートやIPだけ訪問許可で設定します。
一般的にはiptablesを利用します。以下は設定の例です。
設定例
-A INPUT -p tcp -m state --state NEW -m tcp --dport 8080 -j ACCEPT # 8080ポート開け
-A INPUT -s 192.168.0.0/16 -j ACCEPT # ローカル訪問全部許可
-A INPUT -j REJECT --reject-with icmp-port-unreachable # 他の接続は遮断

このように設定すると、8080ポートとローカルIPだけ訪問できました。

しかし、この方法ではDockerでデプロイしたサービスに対して効果が見られません。nginxサービスをdocker containerで立ち上げているからです。また、社内業務に向いている為、外部接続をブロックし、特定のIPへアクセス許可のように設定する必要があります。
設定方法はshellで以下命令を実行します。

設定例
iptables -I DOCKER -i eth0 -j DROP
iptables -I DOCKER -i eth0 -s <アクセス許可のIP> -m state --state NEW -j ACCEPT
iptables -I DOCKER -i eth0 -p tcp --dport <アクセス許可のポート> -m state --state NEW -j ACCEPT

順番を間違いなく確認してください。
* Dockerネットはdockerサービス依存なので、dockerサービスが再起動するともう一回上記の命令を実行することが必要です。