ホームページ >運用・保守 >Docker >Docker が外部ネットワークに ping できない理由と解決策

Docker が外部ネットワークに ping できない理由と解決策

PHPz
PHPzオリジナル
2023-04-17 16:42:505331ブラウズ

Docker を使用すると、さまざまな問題が発生します。その 1 つは、外部ネットワークからの ping が Docker 内から到達できないことです。この問題は非常に一般的ですが、外部リソースへの接続が妨げられる可能性があるため、深刻でもあります。

Docker が外部ネットワークに ping できない理由は数多くありますが、一般的な解決策をいくつか次に示します。

  1. ネットワーク設定を確認する

まず、Docker のネットワーク設定が正しいかどうかを確認する必要があります。 Docker コンテナを実行する場合、多くの場合、ネットワーク モードを指定する必要があります。ネットワークモードが正しく指定されていない場合、Docker が外部ネットワークに接続できない可能性があります。

次のコマンドを使用して、Docker のネットワーク設定を表示できます:

docker network inspect

このコマンドを使用すると、すべての Docker のネットワーク設定を表示できます。ネットワーク設定が間違っている場合は、次のコマンドを使用してネットワークをリセットする必要があります:

docker network create \
    --driver bridge \
    --subnet 192.168.0.0/16 \
    mynetwork

上記のコマンドは、mynetwork という名前の Docker ネットワークを作成し、サブネットを 192.168.0.0/16 に設定します。

  1. ファイアウォール設定を確認してください

ファイアウォール設定により、Docker が外部ネットワークに ping できない可能性があります。ファイアウォール設定をチェックして、Docker アクセスが許可されていることを確認する必要があります。

ファイアウォール設定に一般的に使用されるツールは iptables です。次のコマンドを使用して iptables 設定を確認できます:

sudo iptables -L

Docker のネットワーク アクセスをブロックするルールがある場合は、次のルールを追加する必要があります:

sudo iptables -A INPUT -p tcp --dport 2375 -j ACCEPT
sudo iptables -A OUTPUT -p tcp --dport 2375 -j ACCEPT

上記のコマンドは、 Docker のネットワーク アクセス許可を許可するルール。

  1. DNS 設定を確認する

DNS 設定により、Docker が外部ネットワークに接続できない可能性があります。 Docker の DNS 設定が正しいことを確認する必要があります。

Docker の DNS 設定を表示するには、次のコマンドを使用します。

docker exec -it container_id cat /etc/resolv.conf

このうち、container_id は、確認する Docker コンテナの ID です。

DNS 設定が間違っている場合は、正しい DNS サーバー アドレスを Docker の /etc/docker/daemon.json ファイルに追加できます:

{
  "dns": ["1.1.1.1", "8.8.8.8"]
}

上記の設定は、1.1.1.1 および 8.8 を意味します。 DNS サーバー アドレスとして .8.8 を指定します。

  1. Docker エンジンのバージョンを確認する

最後に、Docker エンジンのバージョンがネットワーク接続をサポートしているかどうかを確認する必要があります。

Docker Engine の一部の古いバージョンでは、ネットワーク接続の問題が発生する可能性があります。この問題を回避するには、Docker Engine の最新バージョンにアップグレードする必要があります。

次のコマンドを使用して Docker エンジンのバージョンを確認します:

docker version

バージョンが最新でない場合は、次のコマンドを使用して Docker エンジンをアップグレードする必要があります:

sudo apt-get update
sudo apt-get install docker-ce

上記のコマンドは、Docker エンジンを最新バージョンに更新し、ネットワーク接続の問題を解決します。

要約すると、Docker からの ping が外部ネットワークに到達できない理由は多数ある可能性があり、上記の解決策に従って 1 つずつトラブルシューティングを行う必要があります。問題の根本原因を確認することによってのみ、ネットワーク接続の問題を効果的に解決できます。

以上がDocker が外部ネットワークに ping できない理由と解決策の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。