近年、クラウドコンピューティングの分野でDocker技術が急速に発展し、広く利用されるようになりました。 Docker コンテナ テクノロジーは、開発者がアプリケーションを簡単にデプロイできるだけでなく、繰り返し可能なデプロイ環境を迅速に構築するのに役立ちます。ただし、Docker を使用すると、Docker ポート マッピングにアクセスできないなどの問題が発生することがあります。この記事では、Docker を使用する開発者の助けになればと思い、この状況の原因と解決策を紹介します。
1. Docker ポート マッピングとは
Docker コンテナでは、外部アクセスを容易にするために、多くの場合、コンテナ内のサービス ポートをホストに公開する必要があります。このとき、Dockerのポートマッピング機能を使用する必要があります。
Docker ポート マッピングでは、コンテナー内のポートをホスト上のポートにマッピングできます。たとえば、コンテナのポート 80 をホストのポート 8080 にマップすると、ホストのポート 8080 にアクセスするときにコンテナのポート 80 サービスにアクセスできるようになります。
2. Docker のポート マッピングにアクセスできない理由
Docker を使用していると、コンテナ内のサービスにアクセスできない場合があります。ポートマッピングが正しく設定されています。 Docker ポート マッピングが正しく設定されていない場合、アクセスできなくなります。
Docker ポート マッピングにアクセスできない一般的な理由は次のとおりです。
Docker コンテナ内 内部的には、開発者は通常、サービスがリッスンするアドレスを指定します。デフォルトは 127.0.0.1 で、ローカルでのみアクセスできることを意味します。サービスリスニングアドレスが変更されていない場合、ホスト上でポートがマッピングされていても、コンテナ内のサービスにアクセスできません。
ホストのファイアウォールが Docker によってマップされたポートをブロックすると、ホストから Docker コンテナ サービスにアクセスできなくなります。
Docker コンテナで実行されているサービスが非標準ポートで実行されている可能性があります。この場合、ポートマッピング中にマッピングする必要があります。マッピングされたポートがコンテナ内で実行されているサービス ポートと一致しない場合、サービスにアクセスできません。
Docker コンテナが正しく実行されていない場合、マップされたポートにアクセスできません。 Docker コンテナーの実行ログを表示することで、問題のトラブルシューティングを行うことができます。
3. Docker ポート マッピングにアクセスできない問題を解決する方法
Docker ポート マッピングにアクセスできない上記の理由により、次の解決策を採用できます。 #Use 0.0 .0.0 address listen port
app.listen(3000, '0.0.0.0', function() { console.log('Server listening on port 3000'); });
ホストのファイアウォール構成を確認します
iptables -I INPUT -p tcp --dport 映射的端口号 -j ACCEPT
sudo iptables -I INPUT -p tcp --dport 8080 -j ACCEPT
マップされたポートの正確性の問題
docker run -p 8080:80 nginx
このコマンドを実行するときは、Nginx サービスがポート 80 で実行されていることを確認する必要があります。デフォルト。
Docker コンテナの実行ログを確認する
上記は、Docker ポート マッピングにアクセスできない問題を解決するためのいくつかの方法とヒントです。
以上がLinux Dockerポートマッピングにアクセスできない場合の対処方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。