https://stackoverflow.com/a/46266757 (@mkubaczykによる「Ubuntuでのdocker + ufwのベストプラクティス」の回答)ガイドに従って、DockerをUFWで適切に構成しましたが、それでもできませんコンテナでインターネットにアクセスします。
問題は何でしょうか?
問題は、docker-compose
を使用してセットアップしたコンテナーにある可能性があります。デフォルトでは、docker-compose.yml
ファイル内のサービス用に新しいネットワークが作成されます。これにより、docker0
サブネットが設定された172.17.0.0/16
インターフェースだけでなく、通常は他のインターフェース172.x.0.0/16も使用できるようになります。
これを克服するには、ネットワークにルールを追加する必要があります。
$ iptables -t nat -A POSTROUTING ! -o br-XXX -s 172.YYY.0.0/16 -j MASQUERADE
ここで、br-XXXはインターフェイス名、172.YYY.0.0/16-サブネットです。
または、説明されているサービスごとにdocker0
に含めることにより、単一のdocker-compose.yml
ネットワークを使用します。
network_mode: bridge