私はドッカーコンテナがローカルアクセスのみを可能にし、インターネットアクセスは不可能に制限する簡単な方法を探しています。
これを行うためにIPtablesを試してみましたが、次のように動作しました。
iptables -I FORWARD -i docker0 -j DROP
ただし、dockerサービスを再起動すると、ローカルホストはコンテナにアクセスできなくなります。
答え1
「ローカルアクセス」とは、コンテナが互いにホストとドッカーホストと通信できるが、ドッカーホスト外のネットワークにアクセスできないようにすることを意味すると仮定します。
いくつかのオプションがあります。
1.
iptablesを使用して、外部ネットワークインタフェースとのDOCKERチェーン内のすべてのパケットを破棄します。
iptables -I DOCKER -i eno1 -j DROP
(eno1
状況は異なる場合があります。これは私のDockerホストのネットワークインターフェイス名です。)
2.
閉じるIP転送Dockerホストから。
echo 0 > /proc/sys/net/ipv4/ip_forward
注:これは同じ方法ですべての仮想マシンを制限しますが、セキュリティに敏感な人のための一般的で安全なアプローチです。
源泉:
バラよりhttps://docs.docker.com/v1.5/articles/networking/#the-world 「コンテナとより広い世界のコミュニケーション」の詳細をご覧ください。