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

推薦する

Reactコンポーネントのライフサイクルの詳細な説明

目次1.ライフサイクルとは何か2. 読み込みプロセス1.コンストラクタ2. レンダリング3. コンポ...

Ubuntu20.04 VNCのインストールと設定の実装

VNC はリモート デスクトップ プロトコルです。 VNC を使用して Ubuntu 20.04 を...

docker mysqlの起動時に初期化SQLを実行する

1.Mysqlイメージを取得するdocker pull mysql:5.7 2. MySQLイメージ...

MongoDB データベースの状態を監視する Zabbix3.4 メソッド

Mongodb には db.serverStatus() コマンドがあり、これを使用して Mongo...

Ubuntu 20.04 に Python 3 仮想環境をインストールする詳細なチュートリアル

以下はすべて仮想マシン上で実行されます1. pip3をインストールするsudo apt で pyth...

Centos6.5 glibc アップグレードプロセスの紹介

目次シナリオ要件glibc バージョンglibcのインストールglibc ソフトリンクシナリオ要件C...

JavaScript ベースのシンプルなカルーセルの実装

この記事では、シンプルなカルーセルを実装するためのJavaScriptの具体的なコードを参考までに紹...

VirtualBox6上のCentOS7で静的IPを設定する方法と注意点

VirtualBox をインストールした後、CentOS 7 をインストールします。ここでは詳細には...

MySQL ジョイントテーブルクエリの簡単な例

MySql は結合テーブルクエリを使用しますが、初心者には理解しにくい場合があります。以下の記事では...

Node8 における AsyncHooks 非同期ライフサイクル

Async Hooks は Node8 の新機能です。NodeJs の非同期リソースのライフサイクル...

HTML の基本 - CSS スタイルシート、スタイル属性、フォーマット、レイアウトの詳細

1.位置:固定一部の Web サイトの右下隅にあるポップアップ ウィンドウなどの、ブラウザーを基準と...

Vue.js と MJML でレスポンシブなメールを作成する

MJML は、開発者が美しく、応答性に優れ、あらゆるデバイスやメール クライアントで動作する魅力的な...

dockerコンテナがIP経由でホストマシンにアクセスできない問題を解決する方法の詳細な説明

問題の起源docker を使用する場合、残念ながら docker コンテナ内のホストのポート 80 ...

Centos7 で MySQL マスター スレーブ サーバーを構築する方法 (グラフィック チュートリアル)

この記事では主に CentOS 上で MySQL マスタースレーブサーバーを構築する方法を紹介します...

HTML でフレームセット タグを使用するチュートリアル

フレームセット ページは通常の Web ページとは多少異なります。依然として <HTML>...