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

推薦する

Linuxの運用と保守の基本プロセス管理と環境構成分析

目次1. プロセスの基本的な概要2. プロセスの構成要素3. プロセス環境4. プロセスステータス5...

Dockerはnginxをデプロイし、フォルダとファイル操作をマウントします

この間、私は docker を勉強していたのですが、nginx をデプロイするときに行き詰まりました...

H5でクリックされたときにaタグの背景色をキャンセルする方法

1. モバイル端末でクリックされたときにタグの青色を解除する { -webkit-tap-highl...

HTML ウェブページのメタビューポート属性の説明

HTML メタビューポート属性の説明ビューポートとはモバイル ブラウザは、Web ページを仮想の「ウ...

Linux ソースコードからのソケット (TCP) クライアント側での接続の例の詳細な説明

序文著者は、アプリケーションからフレームワーク、オペレーティング システムに至るまで、あらゆるコード...

JavaScript で Baidu Maps API にアクセスする方法と手順

目次1. Baidu Map API アクセス2. HTML で Baidu Map API を使用...

インデックスを設計する際の原則は何ですか? インデックスの障害を回避するにはどうすればよいでしょうか?

目次主キーインデックス頻繁にクエリされるフィールドのインデックスを作成する大きなフィールドのインデッ...

MySQLが間違ったインデックスを選択する理由と解決策

MySQL では、テーブルに複数のインデックスを指定できますが、ステートメントの実行時に、使用するイ...

MySQL の行レベルロックの詳細な例

序文ロックは、複数のスレッドを実行するときにリソースへのアクセスを強制的に制限するために使用される同...

MySQL ページングクエリ最適化テクニック

ページング クエリを使用するアプリケーションでは、LIMIT と OFFSET を含むクエリが非常に...

MySQL パフォーマンス最適化のための魔法のツール、Explain の基本的な使用分析

導入MySQL には、SELECT ステートメントを分析し、開発者が最適化できるように SELECT...

nginx で HSTS を有効にしてブラウザを HTTPS アクセスにリダイレクトする方法の詳細な説明

前回の記事では、https を使用したローカルノードサービスアクセスを実装しました。前回の記事の効果...

Vue の vue.$set() メソッドのソースコード例の詳細な説明

Vue を使用してプロジェクトを開発する過程で、次のような問題によく遭遇します。Vue のデータでオ...

MySQL の count 関数の正しい使い方の詳細な説明

1. 説明MySQLでは、テーブル内の行の総数を取得する必要がある場合、通常は次の文を使用します。 ...

MySQLでルートユーザーのパスワードを変更する方法

方法1: SET PASSWORDコマンドを使用する mysql> username@loca...