クラウド コンピューティングとコンテナ化テクノロジの発展に伴い、Docker は多くの開発担当者、運用保守担当者が使用しなければならない成果物の 1 つになりました。ただし、Docker を使用する場合、ローカル サービスに接続できないという問題が発生することがあります。この記事では、Docker とローカル サービスの間の接続を調査し、ネットワークの問題のトラブルシューティング方法を分析し、読者に効果的な解決策を提供します。ローカルサービスに接続できない問題が発生する予定です。
1. Docker とネイティブ サービス間の接続
Docker は本質的に、コンテナーを使用してアプリケーションとオペレーティング システム間の分離を実現する仮想化テクノロジです。 Docker では、コンテナーとホストは 2 つの独立した環境であり、コンテナー内のアプリケーションはホストのネットワーク リソースにアクセスできません。このため、ネイティブ サービスに接続するには、コンテナ内のサービスをホストにマップする必要があります。
Docker はポート マッピング (ポート マッピング) メカニズムを提供します。これにより、コンテナー内のサービスをホスト上の特定のポートにマッピングして、ローカル サービスとの接続を実現できます。具体的な方法は、Dockerfile または docker run コマンドで -p パラメーターを使用してポート マッピングを指定することです。例:
docker run -p 8080:80 nginx
このコマンドは、コンテナーの 80 ポートをコンテナーの 8080 ポートにマップすることを意味します。 http://localhost:8080 にアクセスすると、コンテナ内で実行されている Nginx サービスにアクセスできるようになります。
2. ネットワークの問題をトラブルシューティングする方法
ポート マッピングによりローカル サービスに簡単に接続できますが、それでもコンテナ内のサービスにアクセスできない場合があります。現時点では、ネットワークの問題をトラブルシューティングして、ローカル サービスに接続できない問題を解決する必要があります。
1. コンテナーの実行ステータスを確認する
まず、コンテナーが正しく実行されているかどうかを確認する必要があります。 docker ps コマンドを使用して、実行中のコンテナを表示できます。例:
docker ps
出力結果で、コンテナのステータスが Up (実行中) であり、ポート マッピング設定が正しいことを確認する必要があります。例:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 26f64c88677c nginx "/docker-entrypoint.…" 12 seconds ago Up 10 seconds 0.0.0.0:8080->80/tcp vigilant_pike
このうち、ポート マッピング部分は: 0.0.0.0:8080->80/tcp で、コンテナ内のポート 80 がホストのポート 8080 にマッピングされることを意味します。
2. ファイアウォール設定を確認します
ネットワークの問題を引き起こす可能性のあるもう 1 つの要因はファイアウォールです。コンテナーに必要なポートがホスト上のファイアウォールによってブロックされていないことを確認する必要があります。次のコマンドを実行すると、現在のシステムのファイアウォール ルールを表示できます。
sudo iptables -L
REJECT や DROP などのルールがある場合は、現時点でファイアウォールが有効であることを意味するため、次のコマンドを追加する必要があります。コンテナに必要なポート通信を許可するルール。
3. コンテナの IP アドレスを確認する
最後に、コンテナ自体のネットワーク設定が正しいことを確認する必要があります。コンテナー内では、ifconfig コマンドを使用してコンテナーの IP アドレスを表示できます。例:
docker exec -it {容器ID} /bin/bash ifconfig
ここで、コンテナー ID は docker ps コマンドを通じて取得できます。コンテナの IP アドレスが間違っているか、アクセスできない場合は、コンテナのネットワーク設定が正しくないため、ネットワークを再構成する必要があります。
3. 概要
この記事では、Docker とローカル サービス間の接続方法を紹介し、コンテナーの実行ステータスの確認、ファイアウォール設定の確認、およびネットワークの問題をトラブルシューティングする 3 つの方法を説明します。コンテナの IP アドレスを表示します。上記の分析により、Docker がローカルサービスに接続できない問題を発見して解決することができ、開発や運用保守作業がスムーズになります。
以上がdocker がローカル サービスに接続できない場合はどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。