ホームページ  >  記事  >  運用・保守  >  CentOS が Docker ホストにアクセスできない場合はどうすればよいですか?

CentOS が Docker ホストにアクセスできない場合はどうすればよいですか?

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

Docker を使用してコンテナ環境を構築する必要がある開発者にとって、Linux オペレーティング システムで Docker を使用することは良い選択です。ただし、一部のユーザーは、CentOS で Docker を使用するときにいくつかの問題に遭遇する可能性があります。その 1 つは、ホスト マシン経由で Docker にアクセスできないことです。この記事では、この問題が発生する理由を説明し、考えられる解決策をいくつか紹介します。

1. 問題の原因

CentOS に Docker をインストールすると、「docker0」という名前のデフォルトの仮想ブリッジが作成されます。各 Docker コンテナはこのブリッジに接続し、「docker0」IP アドレス範囲の IP アドレスを使用します。このようにして、ホストと Docker コンテナは共有の「docker0」ブリッジを介して通信できます。ただし、CentOS ファイアウォールがデフォルトで正しく構成されていないため、Docker ホストにアクセスできません。これは、CentOS ファイアウォールが他の IP アドレス範囲からの受信パケットをブロックするためです。

2. 解決策

  1. ファイアウォールの構成
    まず、Docker ブリッジ アドレス範囲からのパケットを許可するように CentOS でファイアウォールを構成する必要があります。ファイアウォールを構成するコマンドは次のとおりです。
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」コマンドを使用して、新しいファイアウォール ルールがすぐに有効になるようにします。

  1. Docker DNS のセットアップ
    ファイアウォールの問題と同様に、Docker コンテナは DNS 名を正しく解決できません。こうすることで、コンテナーがホストに接続されていても、外部ネットワークにアクセスできなくなります。この問題を解決する 1 つの方法は、Docker コンテナーで DNS を手動で構成することです。

これを行うには、パス「/etc/docker/daemon.json」の下にある Docker 構成ファイルを編集し、次の内容を追加する必要があります:

"dns": ["8.8.8.8", "8.8.4.4"]

これにより、コンテナ内にある Docker が DNS 名を解決できるように Google DNS を設定します。

  1. Docker のバージョンを確認して更新する
    上記の 2 つの方法に加えて、使用している Docker のバージョンが最新バージョンにアップグレードされていることも確認する必要があります。 Docker のバージョンが古すぎると、予期しない動作やエラーが発生する可能性があります。

Docker のバージョンを確認するには、次のコマンドを入力します。

$ docker version

Docker の古いバージョンを実行している場合は、次のコマンドを使用してアップグレードできます。

$ sudo yum update docker

または、Docker が公式に推奨する Yum リポジトリを使用してインストールする場合は、次のコマンドを使用して Docker をアップグレードできます:

$ sudo yum install docker-ce
  1. Docker ネットワーク構成を確認してください
    最後に、次のことを確認してください。すべての設定が正しいことを確認するための Docker ネットワーク構成。次のコマンドを入力してください:
$ docker network ls

これにより、すべての Docker ネットワークがリストされます。すべてのネットワークが「docker0」に関連しておらず、正しく構成されていることを確認してください。

概要

CentOS で Docker を使用すると、便利なコンテナ環境を提供できます。ただし、一部のユーザーは別の問題に遭遇する可能性があります。最も一般的な問題の 1 つは、ホストの Visit Docker を通過できないことです。この記事では、ファイアウォール構成、Docker DNS 設定、Docker バージョンの更新、Docker ネットワーク設定の検査など、この問題の解決策について説明します。 CentOS でこの問題が発生した場合は、上記のいずれかの方法を試して解決できます。

以上がCentOS が Docker ホストにアクセスできない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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