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 ページナビゲーションバーの特殊効果を実現します

推薦する

MySQL 5.7 の一時テーブルスペースを使用して落とし穴を回避する方法

導入MySQL 5.7 は、SSL/TLS と全体的なセキュリティ開発におけるいくつかの重要な変更に...

CSS における位置指定の概要

CSS には 4 種類の配置方法があり、シナリオによって効果が異なります。ここでは、これら 4 種類...

入力要素 [type="file"] を使用する場合のスタイルのカスタマイズとブラウザの互換性の問題に関する議論

この2日間、Baixing.comの筆記試験問題を解いているときに、このような問題に遭遇しました。H...

JS を使用して航空機戦争の小さなゲームを実装する

この記事の例では、参考のために航空機戦争ゲームを実装するためのJSの具体的なコードを共有しています。...

MySQL が重複データを挿入するのを防ぐ 3 つの方法

新しいテーブルを作成する テーブル「人」を作成します( `id` int NOT NULL COMM...

MySQLはテーブル内のフィールドを別のテーブル内のフィールドの値と等しくなるように更新します

以下のように表示されます。 table1 を z として更新し、table2 を zb として結合し...

MLSQL スタックでストリームのデバッグを簡単にする方法

序文クラスメートが MLSQL Stack のストリーミング サポートを調査しています。そこで、フロ...

MySQLの結合クエリ、ユニオンクエリ、サブクエリの原理と使用例の詳細な説明

この記事では、例を使用して、MySQL の結合クエリ、結合クエリ、サブクエリの原理と使用方法を説明し...

HTMLフロートの使用法の簡単な分析

float の使用例左サスペンション: float:left;右サスペンション: float:rig...

MySQLクエリ条件のnot inとinの違いと理由

まずSQLを書く SELECT DISTINCT from_id タラから cod.from_id ...

Vueコンポーネントが相互に値を転送する方法の詳細な説明

目次概要1. 親コンポーネントが子コンポーネントに値を渡す2. 子コンポーネントが親コンポーネントに...

Windows 10 での Tomcat のインストールと展開に関する詳細なチュートリアル

目次1 Java環境の設定2 tomcatのインストールと展開Tomcat をインストールして展開す...

1 時間で MySQL データベースを学ぶ (Zhang Guo)

目次1. データベースの概要1.1 開発の歴史2. MySQL の紹介2.1. MySQLの概要2....

Win10 での MySQL 5.7 の詳細なインストールと設定のチュートリアル

1. MySQL 5.7を解凍する2. 新しい設定ファイルmy.iniを作成し、 D:\Free\m...

Node.jsとDenoの比較

目次序文Denoとは何ですか? Node.jsとの比較建築ESモジュール依存関係の管理TypeScr...