Dockerはポートを介してコンテナに接続します

Dockerはポートを介してコンテナに接続します

Dockerコンテナ接続

1. ネットワークポートマッピング

Pythonアプリケーション用のコンテナを作成します

# docker run -d -P トレーニング/webapp python app.py

-Pパラメータを使用してコンテナを作成し、docker psを使用してポート5000がホストポート32768にバインドされていることを確認します。

-p フラグを使用して、コンテナ ポートをホスト ポートにバインドするように指定することもできます。

2 つの方法の違いは次のとおりです。

-P: コンテナの内部ポートがホストの上位ポートにランダムにマッピングされます。

-p: コンテナの内部ポートを指定されたホスト ポートにバインドします。

…………

# docker run -d -p 5000:5000 トレーニング/ウェブアプリ python app.py

さらに、コンテナにバインドされたネットワークアドレス(127.0.0.1など)を指定することもできます。

# docker run -d -p 127.0.0.1:5001:5000 トレーニング/ウェブアプリ python app.py

このようにして、127.0.0.1:5001にアクセスすることでコンテナのポート5000にアクセスできます。

デフォルトでは、コンテナは TCP ポートにバインドされます。UDP ポートにバインドする場合は、ポートの後に /udp を追加できます。

# docker run -d -p 127.0.0.1:5000:5000/udp トレーニング/webapp python app.py

docker port <images id> [port]コマンドを使用すると、ポートバインディングステータスをすばやく表示できます。

docker ポート ce206e3c0ae6 5000

他のコンテナをすべてシャットダウンし、新しいnginxコンテナを起動します。

# docker run -d -p 5000:80 --name web111 nginx

コンテナのポート80をローカルポート5000に転送し、外部からアクセスします。

正常にアクセスできることがわかります。これは、ポートが転送されていることを示しています。

2. Dockerコンテナ接続

ポート マッピングは、Docker を別のコンテナーに接続する唯一の方法ではありません。

Docker には、複数のコンテナを接続して接続情報を共有できる接続システムがあります。

Docker 接続により、親コンテナが子コンテナの情報を参照できる親子関係が作成されます。

3. コンテナの命名

コンテナを作成すると、Docker によって自動的に名前が付けられます。しかし、--nameフラグを使ってコンテナに名前を付けることもできます

docker run -d -P --name Peithon トレーニング/ウェブアプリ python app.py

追加知識: Docker コンテナ内で開いているポートを確認する方法

コンテナbashを入力する必要はありません。LinuxコマンドラインでdockerポートコンテナIDを入力するだけで表示されます。

Docker のポートを介してコンテナを接続する方法については、上記の記事が皆さんに共有できるすべてです。これが皆さんの参考になれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • 複数の Docker コンテナが同じポート番号を持たない場合の解決策
  • 実行中のDockerコンテナのポートマッピングを変更する方法
  • Docker でコンテナのポート マッピングを動的に変更する方法
  • Windows 10でDockerコンテナのポートにアクセスできない問題に対する完璧な解決策
  • Dockerはコンテナにポートを動的に公開します
  • Dockerコンテナがホストポートにアクセスできない場合の解決策
  • Dockerはコンテナポートバインディングのローカルポートを実装します

<<:  マークアップ言語 - 画像の置き換え

>>:  JS は Web ページナビゲーションバーの特殊効果を実現します

推薦する

JavaScript における BOM と DOM の詳細な説明

目次BOM (ブラウザ オブジェクト モデル) 1. ウィンドウブラウザのウィンドウサイズを取得する...

CSS3 でテキストの点滅効果を実現する 3 つの方法 サンプルコード

1. 透明度を変更してテキストを徐々に点滅させると、次のような効果が得られます。 <!DOCT...

Vue3 のウォッチの使用方法とベストプラクティスガイド

目次序文🌟 1. APIの紹介2. 複数のデータソースの監視3. リスニングアレイ4. 監視対象5....

Samba を使用して Linux サーバー上で共有ファイル サービスを構築する方法

最近、私たちの小さなチームは、サーバー上の共有フォルダーを共有して、全員がパブリックリソースドキュメ...

16 の XHTML1.0 と HTML の互換性ガイドラインの概要

1.ページを XML タイプとして宣言しないでください。ページでは UTF-8 または UTF-16...

CentOS7 ファイアウォールとポート関連コマンドの紹介

目次1. ファイアウォールの現在の状態を確認する2. ファイアウォールサービスを開始する3. ファイ...

Docker コンテナのマウントディレクトリ操作の表示

Dockerコンテナのマウントディレクトリ情報のみを表示する docker 検査 --format ...

JS のオブジェクトリテラルの詳細な説明

目次序文1. オブジェクト構築にプロトタイプを設定する1.1 __proto__ の使用における特殊...

Dockerでspringcloudプロジェクトをデプロイする方法

目次Dockerイメージのダウンロードmysqlとnacosを起動する独自のJavaプロジェクトを変...

MySQL のテーブル内のレコード数を制限する方法

目次1. トリガーソリューション2. パーティションテーブルソリューション3. 一般的な表領域ソリュ...

MySQLのパスワードを忘れた場合の対処方法

MySQL パスワードを 2 回忘れてしまいましたか?最初、私はアンインストールして再インストールす...

MySQLストレージフィールドタイプのクエリ効率についての簡単な理解

検索パフォーマンスは最速から最遅まで次のとおりです (私が聞いたところによると)。 1 番目: ti...

JSはアニメーションのレイアウト変換を実装します

JS でアニメーションを記述する場合、移動前に相対位置を絶対位置に変換してからアニメーション機能を実...

MySQL のファントムリード問題を解決する方法

目次序文1. ファントムリーディングとは何ですか? 2. ファントムリーディングの問題点は何ですか?...

複数の古いプレーヤーの埋め込みコード

ウェブページに表示されるプレーヤーは、WMP/RealPlayer/Flash Player に過ぎ...