私はdockerコンテナーを制限する簡単な方法を探しています。これにより、Dockerコンテナーにはローカルアクセスのみがあり、インターネットアクセスはありません。
これを行うためにIPtablesを使用してみましたが、以下の作業を行いました:
iptables -I FORWARD -i docker0 -j DROP
ただし、Dockerサービスを再起動すると、localhostはコンテナにアクセスできなくなります。
「ローカルアクセス」とは、コンテナーがお互いとDockerホストと通信できるようにしたいが、Dockerホストの外部のネットワークにはアクセスできないようにする必要があることを想定していますか?
いくつかのオプションがあります。
1。
Iptablesを使用して、DOCKERチェーン内の外部ネットワークインターフェイスとの間のすべてのパケットをドロップします。
iptables -I DOCKER -i eno1 -j DROP
(eno1
は、ケースによって異なる場合があります。私のドッカーホストのネットワークインターフェースの名前です。)
2。
Docker Hostでip転送をオフにします。
echo 0 > /proc/sys/net/ipv4/ip_forward
注:これも同じように仮想マシンを制限しますが、よりセキュリティを意識した一般的で安全なアプローチです。
ソース:
詳細は https://docs.docker.com/v1.5/articles/networking/#the-world 「コンテナとより広い世界との間の通信」を参照してください。