検索
ホームページ運用・保守Dockerdocker がマップされたポートにアクセスできない場合はどうすればよいですか?

近年、コンテナ化テクノロジーの人気が高まっています。その中でも、Docker は最も人気のあるコンテナ化ソリューションの 1 つとして、開発環境と本番環境の両方で広く使用されています。ただし、Docker を使用すると、マップされたポートにアクセスできないという問題が発生することがありますので、この記事ではこの問題とその解決策について詳しく説明します。

問題の説明

Docker コンテナを実行する場合、-p または --publish オプションを使用してコンテナ内のポートをマッピングできます。ポート上のホストに送信します。たとえば、次のコマンドを使用して、コンテナ内のポート 8080 をホスト上のポート 8000 にマップできます。

docker run -d -p 8000:8080 myimage

ただし、場合によっては、マップされたポートにアクセスできないことがわかります。たとえば、上記の例では、http://localhost:8000 を通じてコン​​テナ内のアプリケーションにアクセスできない可能性があります。

原因分析

この問題を解決するには、まず原因を分析する必要があります。この問題には主に次のような理由があります:

コンテナが開始されていない

ポートをマップするとき、実際にはコンテナ内のポートをホストにバインドします。 start ではない場合、ポートをバインドできません。次のコマンドでコンテナのステータスを確認できます:

docker ps -a

ステータスが Exited の場合、コンテナが実行されていないことを意味します。次のコマンドでコンテナを起動する必要があります。コマンド:

docker start <container_name></container_name>

ホスト ファイアウォールの制限

ホストのポートを介してアプリケーションにアクセスできない場合があります。これは、ホストのファイアウォールがアクセスを制限していることが原因である可能性があります。この問題は、ファイアウォール ルールをオフにするか変更することで解決できます。

ホスト ポートはすでに占有されています

-p オプションを使用する場合、ホスト ポートがすでに占有されている場合、コンテナのポートをホストにバインドできません。次のコマンドを使用してポートの占有を確認できます。

sudo lsof -i :<port></port>

次に、ポートを占有しているプロセスを見つけて、プロセスを閉じるか、そのポートを変更します。

コンテナ内のリスニング IP が間違っています

場合によっては、コンテナ内でアプリケーション監視用の IP アドレスを設定している可能性がありますが、この IP アドレスが正しくないため、アクセスできなくなります。アプリケーション。アプリケーションがすべての IP アドレスをリッスンするか、リッスンする IP アドレスが正しく設定されていることを確認する必要があります。

解決策

上記の問題については、次の解決策があります。

コンテナを起動する

コンテナが起動しない場合は、コンテナを起動する必要があります。次のコマンドでコンテナにアクセスします。

docker start <container_name></container_name>

ファイアウォール ルールを確認します

次のコマンドでファイアウォール ルールを確認できます:

sudo iptables -L

ルールによってアクセスが制限されていることがわかった場合場合は、次のコマンドを使用してファイアウォールを無効にできます。

sudo service iptables stop

または、ファイアウォール ルールを変更して、対応するポートへのアクセスを許可します。

ポート マッピングの変更

ホスト ポートがすでに占有されている場合は、ポート マッピングを変更して、空いているポートを見つける必要があります。

リスニング IP アドレスを調整する

コンテナ内のアプリケーションによって監視されている IP アドレスが間違っている場合は、アプリケーションがすべての IP アドレスを監視するか、リスニング IP アドレスを正しく設定していることを確認する必要があります。たとえば、アプリケーションのリスニング アドレスを 0.0.0.0 に設定すると、すべての IP アドレスを監視できます。

概要

マップされたポートにアクセスできないことは、Docker を使用するときによくある問題ですが、問題の根本原因を見つけて適切な解決策を講じれば、簡単に解決できます。この記事の導入を通じて、読者はそのような問題に対処する方法を学び、Docker を使用する経験とスキルをさらに向上させたと思います。

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

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

Docker Containerの起動手順:コンテナ画像を引く:「Docker Pull [Mirror Name]」を実行します。コンテナの作成:「docker create [options] [mirror name] [コマンドとパラメーター]」を使用します。コンテナを起動します:「docker start [container name or id]」を実行します。コンテナのステータスを確認してください:コンテナが「Docker PS」で実行されていることを確認します。

Dockerからログを表示する方法Dockerからログを表示する方法Apr 15, 2025 pm 12:24 PM

Dockerログを表示する方法は次のとおりです。たとえば、Docker Logsコマンドを使用します。たとえば、Docker logs container_name docker execコマンドを使用して /bin /shを実行し、logファイルを表示します。 cat /var/log/container_name.log docker-compose -f docker-comのDocker ComposeのDocker-Composeログを使用します。

Dockerコンテナの名前を確認する方法Dockerコンテナの名前を確認する方法Apr 15, 2025 pm 12:21 PM

すべてのコンテナ(Docker PS)をリストする手順に従って、Dockerコンテナ名を照会できます。コンテナリストをフィルタリングします(GREPコマンドを使用)。コンテナ名(「名前」列にあります)を取得します。

Docker用のコンテナを作成する方法Docker用のコンテナを作成する方法Apr 15, 2025 pm 12:18 PM

Dockerでコンテナを作成します。1。画像を引く:Docker Pull [ミラー名]2。コンテナを作成:Docker Run [Options] [Mirror Name] [コマンド]3。コンテナを起動:Docker Start [Container Name]

Dockerによってコンテナを出る方法Dockerによってコンテナを出る方法Apr 15, 2025 pm 12:15 PM

Dockerコンテナを終了する4つの方法:コンテナ端子でCtrl Dを使用するコンテナターミナルに出口コマンドを入力しますDocker stop&lt; container_name&gt;コマンドを使用するDocker Kill&lt; container_name&gt;ホストターミナルのコマンド(フォース出口)

Dockerのファイルを外部にコピーする方法Dockerのファイルを外部にコピーする方法Apr 15, 2025 pm 12:12 PM

Dockerの外部ホストにファイルをコピーする方法:Docker CPコマンドを使用:Docker CP [Options]&lt; Container Path&gt; &lt;ホストパス&gt;。データボリュームの使用:ホストにディレクトリを作成し、-vパラメーターを使用してコンテナを作成するときにディレクトリをコンテナにマウントして、双方向ファイルの同期を実現します。

DockerによるMySQLを開始する方法DockerによるMySQLを開始する方法Apr 15, 2025 pm 12:09 PM

DockerでMySQLを起動するプロセスは、次の手順で構成されています。MySQLイメージをプルしてコンテナを作成および起動し、ルートユーザーパスワードを設定し、ポート検証接続をマップしてデータベースを作成し、ユーザーはすべての権限をデータベースに付与します。

Dockerを再起動する方法Dockerを再起動する方法Apr 15, 2025 pm 12:06 PM

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop&lt; container_id&gt;);コンテナを起動します(docker start&lt; container_id&gt;);再起動が成功していることを確認します(Docker PS)。その他の方法:Docker Compose(Docker-Compose Restart)またはDocker API(Dockerドキュメントを参照)。

See all articles

ホットAIツール

Undresser.AI Undress

Undresser.AI Undress

リアルなヌード写真を作成する AI 搭載アプリ

AI Clothes Remover

AI Clothes Remover

写真から衣服を削除するオンライン AI ツール。

Undress AI Tool

Undress AI Tool

脱衣画像を無料で

Clothoff.io

Clothoff.io

AI衣類リムーバー

AI Hentai Generator

AI Hentai Generator

AIヘンタイを無料で生成します。

ホットツール

SAP NetWeaver Server Adapter for Eclipse

SAP NetWeaver Server Adapter for Eclipse

Eclipse を SAP NetWeaver アプリケーション サーバーと統合します。

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

SublimeText3 英語版

SublimeText3 英語版

推奨: Win バージョン、コードプロンプトをサポート!

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

Dreamweaver Mac版

Dreamweaver Mac版

ビジュアル Web 開発ツール