Docker を使用してコンテナ環境を構築する必要がある開発者にとって、Linux オペレーティング システムで Docker を使用することは良い選択です。ただし、一部のユーザーは、CentOS で Docker を使用するときにいくつかの問題に遭遇する可能性があります。その 1 つは、ホスト マシン経由で Docker にアクセスできないことです。この記事では、この問題が発生する理由を説明し、考えられる解決策をいくつか紹介します。
1. 問題の原因
CentOS に Docker をインストールすると、「docker0」という名前のデフォルトの仮想ブリッジが作成されます。各 Docker コンテナはこのブリッジに接続し、「docker0」IP アドレス範囲の IP アドレスを使用します。このようにして、ホストと Docker コンテナは共有の「docker0」ブリッジを介して通信できます。ただし、CentOS ファイアウォールがデフォルトで正しく構成されていないため、Docker ホストにアクセスできません。これは、CentOS ファイアウォールが他の IP アドレス範囲からの受信パケットをブロックするためです。
2. 解決策
sudo firewall-cmd --permanent --zone=trusted --add-interface=docker0 sudo firewall-cmd --permanent --zone=trusted --add-source=172.17.0.0/16 sudo firewall-cmd --permanent --zone=trusted --add-source=172.18.0.0/16 sudo firewall-cmd --reload
上記のコマンドでは、「信頼された」ゾーンを定義し、「docker0」ブリッジを追加しました。さらに、「172.17.0.0/16」および「172.18.0.0/16」の IP アドレス範囲からのパケットがこのゾーンに入ることが許可されます。最後に、「firewall-cmd --reload」コマンドを使用して、新しいファイアウォール ルールがすぐに有効になるようにします。
これを行うには、パス「/etc/docker/daemon.json」の下にある Docker 構成ファイルを編集し、次の内容を追加する必要があります:
"dns": ["8.8.8.8", "8.8.4.4"]
これにより、コンテナ内にある Docker が DNS 名を解決できるように Google DNS を設定します。
Docker のバージョンを確認するには、次のコマンドを入力します。
$ docker version
Docker の古いバージョンを実行している場合は、次のコマンドを使用してアップグレードできます。
$ sudo yum update docker
または、Docker が公式に推奨する Yum リポジトリを使用してインストールする場合は、次のコマンドを使用して Docker をアップグレードできます:
$ sudo yum install docker-ce
$ docker network ls
これにより、すべての Docker ネットワークがリストされます。すべてのネットワークが「docker0」に関連しておらず、正しく構成されていることを確認してください。
概要
CentOS で Docker を使用すると、便利なコンテナ環境を提供できます。ただし、一部のユーザーは別の問題に遭遇する可能性があります。最も一般的な問題の 1 つは、ホストの Visit Docker を通過できないことです。この記事では、ファイアウォール構成、Docker DNS 設定、Docker バージョンの更新、Docker ネットワーク設定の検査など、この問題の解決策について説明します。 CentOS でこの問題が発生した場合は、上記のいずれかの方法を試して解決できます。
以上がCentOS が Docker ホストにアクセスできない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。