ホームページ 運用・保守 Docker docker によって構築された Web ポートがブロックされている場合はどうすればよいですか?

docker によって構築された Web ポートがブロックされている場合はどうすればよいですか?

Apr 18, 2023 pm 02:07 PM

Docker は、非常に人気のあるオープン ソースのコンテナ化エンジンです。迅速に構築でき、管理が容易で、アプリケーションの移植性が確保できるため、開発環境や運用環境で広く使用されています。ただし、Docker を使用して Web アプリケーションを構築する場合、ポートが通信できないことは珍しくありません。今日は、Docker によって構築された Web ポートがブロックされる理由と解決策を分析します。

1. 原因分析

  1. ファイアウォールの理由

Linux システムでは、iptables ファイアウォール サービスがデフォルトで有効になっています。設定していない場合は、 Docker コンテナは外部ネットワークと通信します。したがって、Docker が外部ネットワークとスムーズに通信できるように、ファイアウォールを無効にするかルールを追加できます。以下は参考コマンドです:

ファイアウォールを閉じる: $ sudo service iptables stop

ポートを開く: $ sudo iptables -A INPUT -p tcp --dport 80 -j ACCEPT

  1. ポート マッピングの理由

Docker はコンテナを起動すると、ポート マッピングを通じてコン​​テナ内のポートをホスト上のポートにマップし、コンテナとコンテナ間の通信を実現します。外部ネットワーク。デフォルトでは、コンテナのネットワークは独立しており、内部でのみ通信します。したがって、コンテナ内のポートをマッピングしないと、ポートが通信できなくなる可能性があります。以下はポートをマップするデフォルトの方法です:

$ docker run -p 80:80 image-name

  1. コンテナネットワークの問題

Docker ネットワーク ドライバーの 3 つのタイプは、ブリッジ、ホスト、およびなしです。 Docker コンテナを使用する場合、デフォルトでブリッジ ネットワーク ドライバーが使用され、NAT ネットワークに基づいて仮想ネットワークを形成します。コンテナーが外部ネットワークにアクセスできない場合は、ネットワーク ドライバーが正しく選択されているかどうかを確認する必要がある場合があります。次のコマンドを使用してネットワーク ドライバーを確認できます:

$ docker network ls

  1. Container IP address question

Docker がコンテナーを起動した後、これはネットワーク ドライバーに基づいて、一意の IP アドレスを割り当てます。コンテナーの IP アドレスが外部ネットワークにアクセスできない場合は、コンテナーに接続されているネットワーク カードが正しく構成されているかどうかを確認する必要があります。次の例では、コンテナの IP アドレスが 172.17.0.2 であることがわかります:

$ docker Inspection container-name | grep IPAddress

2。

ポート マッピングが正しいかどうかを確認する
  1. 次の方法を使用して、ポート マッピングの関係を確認できます:

$ docker port container-name

出力内容は次のようになります:

80/tcp -> 0.0.0.0:80

上記のコマンドは、コンテナ内のポートとホスト上のポートのマッピングを表示できます。

ネットワーク ドライバーが正しく選択されているかどうかを確認します。
  1. 次の方法を使用して、コンテナーで使用されているネットワークの種類を確認できます:

$ docker Inspection container-name | grep NetworkMode

出力が Bridge の場合、ネットワーク ドライバーが正しく選択されていることを意味します。出力が host または none の場合は、次のように変更できます:

ネットワークの種類をブリッジに変更します:

$ docker run --network Bridge image-name

ファイアウォールがオフになっているか、ルールが正しく設定されているかを確認してください
  1. Docker コマンドを実行するときに、--privileged パラメーターを追加して、Docker コンテナーに比較的高い権限を与えることができます。

$ docker run --privileged image-name

コンテナの IP アドレスが正しいかどうかを確認します
  1. 次のコマンドを使用してコンテナを表示できますIP アドレス:

$ docker detectcontainer -name | grep IPAddress

コンテナの IP アドレスが変更された場合は、次のコマンドを使用して一意の IP アドレスを再割り当てできます:

$ docker run --ip 172.17.0.10 image-name

つまり、Docker によって開始された Web アプリケーション ポートが通信できない場合は、まずこの状況の原因を調査し、次に問題を解決する必要があります。対応する方法。この記事が皆さんのお役に立てれば幸いです。

以上がdocker によって構築された Web ポートがブロックされている場合はどうすればよいですか?の詳細内容です。詳細については、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< container_name>コマンドを使用するDocker Kill< container_name>ホストターミナルのコマンド(フォース出口)

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

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

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

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

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

Dockerコンテナを再起動する方法:コンテナID(Docker PS)を取得します。コンテナを停止します(docker stop< container_id>);コンテナを起動します(docker start< container_id>);再起動が成功していることを確認します(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 04, 2025 am 12:19 AM

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

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

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

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」で実行されていることを確認します。

See all articles