ホームページ 運用・保守 Docker Docker ポートに ping を送信できません

Docker ポートに ping を送信できません

May 13, 2023 pm 01:12 PM

Docker を使用している場合、Docker コンテナのポートがホストと通信できないことが時々あります。これには、ネットワーク構成の問題、セキュリティ設定の問題、ファイアウォールの問題など、さまざまな理由が考えられます。この記事では、Docker ポートが ping できない問題を解決する方法と、この問題の発生を防ぐ方法について説明します。

Docker ネットワーク構成を理解する

問題の解決に深く入る前に、Docker ネットワーク構成を理解する必要があります。 Docker には、ブリッジ、ホスト、なしという 3 つの基本的なネットワーク構成モードがあります。デフォルトでは、Docker はブリッジ モードを使用して IP アドレスをコンテナーに割り当て、コンテナーを仮想サブネットに接続します。これは、コンテナの IP アドレスがホストの IP アドレスとは異なることを意味します。

ネットワーク通信に Docker コンテナを使用する場合、ホストとコンテナの間でネットワーク アドレス変換 (NAT) が必要です。これは、コンテナからの攻撃からホストを保護するため、実際には優れたセキュリティ対策です。

ただし、これはコンテナ内のポートがホストと直接通信できないことも意味します。これは、コンテナ内のポートは通常、コンテナのサブネットに割り当てられており、ホスト上ではこのサブネットが表示されないため、コンテナのポートに直接アクセスできないためです。

Docker ポートが ping できない問題の解決

Docker ネットワーク構成の基本を理解したので、Docker ポートが ping できない問題の解決に着手できます。ピングする。

まず、Docker コンテナの IP アドレスを確認する必要があります。次のコマンドを使用して、実行中のコンテナを一覧表示できます:

docker ps
ログイン後にコピー

コンテナを一覧表示した後、次のコマンドを使用してコンテナの IP アドレスを取得できます:

docker inspect <container_id>
ログイン後にコピー

# を必ず置き換えてください。 ##container_id は独自のコンテナの ID です。

次に、Docker コンテナが必要なサービスを実行しているかどうかを確認する必要があります。次のコマンドを使用して、コンテナがサービスを実行しているかどうかを確認できます:

docker logs <container_id>
ログイン後にコピー

ログに「listening on 」のようなメッセージが表示された場合、コンテナがサービスを実行していることを意味します。対応するサービス。

次に、ファイアウォールがホストとコンテナー間の通信をブロックしているかどうかを確認する必要があります。 Ubuntu や CentOS などの一般的な Linux ディストリビューションを実行している場合、デフォルトでファイアウォールが有効になっています。ホストとコンテナー間の通信を可能にするには、Docker コンテナーのポートを開く必要があります。

Ubuntu を例として、ポートを開く例を次に示します。

sudo ufw allow <port>/tcp
ログイン後にコピー

を必要なポートに置き換えてください。開ける。

最後に、Docker コンテナのポートがホストにマッピングされているかどうかを確認する必要があります。 Docker では、「ポート マッピング」を使用して、コンテナのポートをホストのポートにマッピングできます。たとえば、コンテナのポート 80 をホストのポート 8080 にマッピングできます。このように、

http://localhost:8080 を通じてホストにアクセスすると、Docker コンテナのポート 80 にアクセスされます。

これは、

-p オプションを使用した Docker でのポート マッピングの例です:

docker run -p 8080:80 <image_name>
ログイン後にコピー

を実際のイメージに置き換えてください。 own イメージ名。

Docker ポートに ping できない問題の防止

不安定な Docker ポートに ping できない問題を解決することに加えて、 Docker コンテナは地上通信を正常に動作させることができます。

まず、Docker Compose ファイルでポートを指定できます。これにより、手動操作が効果的に削減され、開発から実稼働環境の展開までの時間が短縮されます。 Docker Compose ファイルでポートを指定する例を次に示します。

services:
    web:
        build: .
        ports:
            - "8080:80"
ログイン後にコピー

次に、Docker のブリッジ ネットワーク モードを使用して、すべてのコンテナが同じネットワーク上にあることを確認できます。これにより、コンテナー同士が通信できるようになり、ホストがコンテナーと通信できるようになります。以下はブリッジ モードの使用例です:

docker run --network=bridge <image_name>
ログイン後にコピー

最後に、Dockerfile で公開する必要があるポートを指定できます。これにより、Docker コンテナが自動的に正しいポートを開くことができるようになります。以下は、Dockerfile で公開する必要があるポートを指定する例です。

EXPOSE 80
ログイン後にコピー
結論

Docker を使用する場合、ポートに ping できないという問題がよく発生します。 。ただし、Docker のネットワーク構成をマスターし、いくつかの予防措置を講じている限り、この状況の発生を回避し、問題を時間内に解決することができます。 Docker を使用しているときにポートに ping ができないという問題が発生した場合に、この記事が役立つことを願っています。

以上がDocker ポートに ping を送信できませんの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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

ホット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衣類リムーバー

Video Face Swap

Video Face Swap

完全無料の AI 顔交換ツールを使用して、あらゆるビデオの顔を簡単に交換できます。

ホットツール

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

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

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

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: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ドキュメントを参照)。

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

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

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

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

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

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

Dockerボリューム:コンテナ内の永続的なデータの管理 Dockerボリューム:コンテナ内の永続的なデータの管理 Apr 04, 2025 am 12:19 AM

Dockervolumeは、コンテナを再起動、削除、または移行すると、データが安全であることが保証されます。 1。ボリュームの作成:Dockervolumecreatemydata。 2。コンテナとマウントボリュームを実行します:Dockerrun-It-Vmydata:/app/dataubuntubash。 3.高度な使用には、データ共有とバックアップが含まれます。

Dockerインタビューの質問:DevOpsエンジニアリングインタビューをエース Dockerインタビューの質問:DevOpsエンジニアリングインタビューをエース Apr 06, 2025 am 12:01 AM

Dockerは、DevOpsエンジニアにとって必須のスキルです。 1.Dockerは、アプリケーションとその依存関係をコンテナにパッケージ化することにより、分離と移植性を実現するオープンソースのコンテナ化されたプラットフォームです。 2. Dockerは、名前空間、コントロールグループ、フェデレーションファイルシステムで動作します。 3。基本的な使用には、コンテナの作成、実行、管理が含まれます。 4.高度な使用法には、DockerComposeを使用してマルチコンテナーアプリケーションを管理することが含まれます。 5.一般的なエラーには、コンテナ障害、ポートマッピングの問題、データの持続性の問題が含まれます。デバッグスキルには、ログの表示、コンテナの入り、および詳細情報の表示が含まれます。 6.パフォーマンスの最適化とベストプラクティスには、画像の最適化、リソースの制約、ネットワーク最適化、DockerFileを使用するためのベストプラクティスが含まれます。

Dockerの画像を更新する方法 Dockerの画像を更新する方法 Apr 15, 2025 pm 12:03 PM

Docker画像を更新する手順は次のとおりです。最新の画像タグ新しい画像をプルする新しい画像は、特定のタグのために古い画像を削除します(オプション)コンテナを再起動します(必要に応じて)

See all articles