私はそれで問題なく動作していましたが、現在は停止しています。次のコマンドを無駄に試しました:
docker run -dns 8.8.8.8 base ping google.com
docker run base ping google.com
sysctl -w net.ipv4.ip_forward=1
- ホストとコンテナの両方
私が得るのはすべてですunknown host google.com
。Docker バージョン 0.7.0
何か案は?
PSufw
も無効化
次のアドバイスに従って修正します。
[...] すべてをリセットしてみることができますか?
pkill docker
iptables -t nat -F
ifconfig docker0 down
brctl delbr docker0
docker -d
Docker にブリッジを再作成させ、すべてのネットワーク ルールを再初期化させます。
https://github.com/dotcloud/docker/issues/866#issuecomment-19218300
インターフェイスが何らかの理由で「ハング」したようです。
最近のバージョンの docker の更新:
上記の答えはまだあなたのために仕事を成し遂げるかもしれませんが、この答えが投稿されてからかなりの時間が経ち、ドッカーはより洗練されたものになっているので、すべてをマングルする前にまずこれらを試してくださいiptables
.
sudo service docker restart
または (upstart を使用しない Linux ディストリビューションを使用している場合)sudo systemctl restart docker
私は使用していてDOCKER_OPTS="--dns 8.8.8.8"
、後で発見しましたが、私のコンテナーはインターネットに直接アクセスできませんでしたが、会社のイントラネットにはアクセスできました。私は次のように変更DOCKER_OPTS
しました:
DOCKER_OPTS="--dns <internal_corporate_dns_address"
DNSのIPアドレスまたはFQDNに置き換えinternal_corporate_dns_address
、dockerを使用して再起動しました
sudo service docker restart
次に、コンテナを生成し、インターネットにアクセスできることを確認しました。
これが私のコンテナの1つでランダムに発生したとき、私は困惑しましたが、他のコンテナは問題ありませんでした. コンテナーは少なくとも 1 つの非内部ネットワークに接続されていたため、Compose
定義に問題はありませんでした。VM / docker デーモンを再起動しても解決しませんでした。ping
また、コンテナは外部 IPさえ取得できなかったため、DNS の問題ではありませんでした。私にとってそれを解決したのは、ドッカーネットワークを再作成することでした。私の場合、docker-compose down && docker-compose up
うまくいきました。
これにより、すべてのコンテナのすべてのネットワークが強制的に再作成されます。
docker-compose down
&&docker-compose up
サービスを削除して再作成するだけで、サービスのネットワークが再作成されると思います。
docker service rm some-service
docker service create ...
そのサービスの外部ネットワークを削除して再作成するだけです。
docker network rm some-external-network
docker network create some-external-network
私にとっては、ホストのファイアウォールでした。ホストのファイアウォールで DNS を許可する必要がありました。また、ホストのファイアウォール設定を変更した後、docker を再起動する必要がありました。
他の回答では、docker0
インターフェイス (ブリッジ) が問題の原因である可能性があると述べられています。Ubuntu 20.04 では、インターフェースに IP アドレスが欠落していることに気付きました (で確認してip addr show dev docker0
ください)。Docker だけを再起動しても解決しませんでした。ブリッジ インターフェイスを手動で削除する必要がありました。
sudo ip link delete docker0
sudo systemctl restart docker
dns オプションを使用して docker を起動した可能性があります--dns 172.x.x.x
同じエラーが発生し、オプションを削除しました/etc/default/docker
台詞:
# Use DOCKER_OPTS to modify the daemon startup options.
DOCKER_OPTS="--dns 172.x.x.x"
OSX を使用している場合は、Docker のインストール後にマシンの再起動が必要になる場合があります。これは時々問題になっています。
Windows(8.1)では、(taskmgrを介して)virtualboxインターフェースを強制終了し、問題を解決しました。
Just run
sudo apt install bridge-utils