Docker にポート マッピングが必要なのはなぜですか?

WBOY
リリース: 2022-08-23 17:52:37
オリジナル
4221 人が閲覧しました

Docker コンテナーの実行中にポート マッピング パラメーターが指定されていない場合、コンテナー内のネットワーク アプリケーション サービスにコンテナーの外部のネットワーク経由でアクセスできないため、Docker ポート マッピングを設定する必要があります。 pass ポートはホスト システムのインターフェイスにバインドされており、ローカル以外のクライアントがコンテナ内で実行されているサービスにアクセスできるようになります。

Docker にポート マッピングが必要なのはなぜですか?

このチュートリアルの動作環境: linux7.3 システム、docker バージョン 19.03、Dell G3 コンピューター。

Docker にポート マッピングが必要な理由

Doker はオープンソースのアプリケーション コンテナ エンジンであり、簡単に言うと、プログラムと実行環境をパッケージ化し、環境とプログラムをまとめて公開できるコンテナです。 。プログラムを公開する必要がある場合、 doker を使用して実行環境を一緒に公開すると、他の人がプログラムを入手した後、直接実行できるため、一度コンパイルすればどこでもデバッグできるという恥ずかしい状況を回避できます。

もっと率直に言うと、doker の出現は主に、なぜ私のマシンでは正常であるのに、あなたのマシンでは正常ではないのかという問題を解決することです。 Docker コンテナには、実行中、一時停止、再起動、終了の 4 つの状態があります。

なぜ doker ポート マッピングを行う必要があるのでしょうか?

Docker コンテナーの実行中に、ポート マッピング パラメーターが指定されていない場合 (ホスト マシンと仮想マシン間のポート マッピングが構成されていない場合)、Docker コンテナーにアクセスすることはできません。コンテナの外部からのネットワーク ネットワーク アプリケーションとサービス (ポートがないため、外部プログラムは仮想マシンにアクセスできません)。この問題を解決するには、doker ポート マッピングを設定する必要があります。

Docker はポートを通じてホスト システムのインターフェイスをバインドし、ローカル以外のクライアントがコンテナ内で実行されているサービスにアクセスできるようにします。コンテナ間の通信を容易にするために、docker はこの接続メカニズムを提供します。

docker の 2 つの一般的なポート マッピング方法

ポートの自動マッピング

  -P使用时需要指定--expose选项,指定需要对外提供服务的端口
  $ sudo docker run -t -P --expose 22 --name server ubuntu:14.04
ログイン後にコピー

docker run -P を使用して自動的にバインドする外部サービスを提供するすべてのコンテナ ポートを定義します。マッピングされたポートは、未使用のポート プール (49000..49900) から自動的に選択されます。特定のバインディング情報は、docker ps、docker Inspection、または docker port を通じて確認できます。

指定されたインターフェイスにポートをバインドします

基本構文

  $ sudo docker run -p [([:[host_port]])|():] [/ udp]
ログイン後にコピー

バインディング IP が指定されていない場合、デフォルトでは、すべてのネットワーク インターフェイスが監視されます。

推奨される学習: 「docker ビデオ チュートリアル

以上がDocker にポート マッピングが必要なのはなぜですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート