Dockerはインターネットにアクセスできません。

Dockerはインターネットにアクセスできません。

私はドッカーコンテナがローカルアクセスのみを可能にし、インターネットアクセスは不可能に制限する簡単な方法を探しています。

これを行うために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 「コンテナとより広い世界のコミュニケーション」の詳細をご覧ください。

関連情報