docker-compose ポートと expose の違いの詳細な説明

docker-compose ポートと expose の違いの詳細な説明

docker-compose でコンテナ ポートを公開する方法は、ports と expose の 2 つがあります。

ポート

Ports は、コンテナ ポートをホストの任意のポートまたは指定されたポートに公開します。使用方法:

ポート:
 
- "80:80" # コンテナのポート 80 をホストのポート 80 にバインドします - "9000:8080" # コンテナのポート 8080 をホストのポート 9000 にバインドします - "443" # コンテナのポート 443 をホストの任意のポートにバインドします。バインドされたホストのポート番号は、コンテナの起動時にランダムに割り当てられます

ポートを使用すると、ホスト ポートが指定されているかどうかに関係なく、ポートがホストに公開されます。

一部のネットワーク アプリケーションはコンテナー内で実行できます。これらのアプリケーションを外部からアクセスできるようにするには、-P (大文字) または -p (小文字) パラメータを使用してポート マッピングを指定します。

(1)-Pフラグを使用すると、Dockerは49000〜49900の間のポートをコンテナ内で開かれたネットワークポートにランダムにマッピングします。

docker ps を使用すると、ローカル ホストのポート 49155 がコンテナーのポート 5000 にマッピングされていることがわかります。このとき、コンテナ内の Web アプリケーションが提供するインターフェースにアクセスするには、ローカル マシンのポート 49155 にアクセスします。

$ sudo docker run -d -P トレーニング/ウェブアプリ python app.py
 
$ sudo docker ps -l
 
コンテナID イメージ コマンド 作成ステータス ポート名
 
bc533791f3f5 training/webapp:latest python app.py 5秒前 2秒前 0.0.0.0:49155->5000/tcp nostalgic_morse

同様に、docker logs コマンドを使用してアプリケーション情報を表示することもできます。

$ sudo docker ログ -f nostalgic_morse
 
* http://0.0.0.0:5000/ で実行中
 
10.0.2.2 - - [2014/05/23 20:16:31] "GET / HTTP/1.1" 200 -
 
10.0.2.2 - - [2014/05/23 20:16:31] "GET /favicon.ico HTTP/1.1" 404 - 

(2)-p(小文字)はマッピングするIPとポートを指定できますが、指定されたポートにバインドできるコンテナは1つだけです。サポートされている形式は、hostPort:containerPort、ip:hostPort:containerPort、ip::containerPort です。

さらす

現在のコンテナにリンクされているコンテナにコンテナを公開します。使用方法:

さらす:
- 「3000」
- 「8000」

上記の手順により、現在のコンテナのポート 3000 と 8000 が、このコンテナにリンクされているコンテナに公開されます。

ポートとの違いは、expose ではポートがホストに公開されないことです。

以上がこの記事の全内容です。皆様の勉強のお役に立てれば幸いです。また、123WORDPRESS.COM を応援していただければ幸いです。

以下もご興味があるかもしれません:
  • Jenkins の docker-compose デプロイメントと構成に関する詳細なチュートリアル
  • Docker は固定コンテナ IP アドレスを実現するためにカスタム ネットワークを作成します。
  • Docker-compose を使用して ELK クラスターを構築する方法
  • docker-composeの詳細なインストールと使用方法
  • Docker Compose ネットワーク設定の説明
  • docker-compose を使用して MySQL を実行する方法
  • docker-composeをインストールする最も簡単な方法2つ
  • PIP で docker-compose をインストールする際のタイムアウト問題の解決方法

<<:  Webpack ファイル パッケージ化エラー例外

>>:  mysql スケジュールタスク (イベント イベント) の詳細な説明

ブログ    

推薦する

VMware のインストールと使用時の問題と解決策

仮想マシンは使用中であるか、接続できません次のようなエラーが報告された場合解決まずこのページにアクセ...

スーパーバイザーウォッチドッグの使い方を3分で学ぶ

ソフトウェアとハ​​ードウェア環境centos7.6.1810 64ビット cat /etc/red...

MySQL における SQL ページングクエリのいくつかの実装方法と利点と欠点

【SQL】SQLページングクエリの概要開発プロセスではページングが必要になることがよくあります。今日...

TypeScript ジェネリックパラメータのデフォルト型と新しい厳密なコンパイルオプション

目次概要コンポーネントクラスの型定義を作成するジェネリック型を使用してPropsとStateを定義す...

CSSマスクのフルスクリーン中央揃えを実装する方法

具体的なコードは次のとおりです。 <スタイル> #トーストローダーフルスクリーン{ 高さ...

nginx と Tencent Cloud の無料証明書を使用して https を作成する方法

httpsを取得する方法を勉強しています。最近、Tencent Cloud が提供する無料の SSL...

AWS無料サーバーアプリケーションとネットワークプロキシ設定チュートリアルの詳細な説明

目次予防必要条件AWSアカウントを申請する仮想マシンの申請と有効化仮想マシンを申請するセキュリティグ...

Vue 父子価値移転、兄弟価値移転、子父価値移転の詳細な説明

目次1. 親コンポーネントが子コンポーネントに値を渡す1. 親コンポーネント.vue 2. サブコン...

JS でシンプルなデータ監視を実装する方法

目次概要最初のステップステップ2なぜ別の _data が必要なのでしょうか?データにもう少しデータを...

vue3 における vuex と pinia の落とし穴

目次導入インストールと使用方法文章の相違点と類似点の簡単な比較VuexとPiniaの長所と短所Pin...

CSSは下部のタップバー機能を実装します

現在多くの携帯電話には、下部のタブバーを切り替える機能があります。私も最近、同様の機能を見つけました...

Vue の高度な使用方法チュートリアル 動的コンポーネント

目次基本的な説明AST 解析レンダリング機能通常コンポーネントと動的コンポーネントの比較ファクトリ関...

MySQL 8.0.11 MacOS 10.13 のインストールと設定方法のグラフィックチュートリアル

MacにMySQLデータベースをインストールし、環境変数を設定する手順を参考までに記録します。具体的...

Sublime Text - ブラウザのショートカットキーを設定するための推奨方法

コード効果を異なるブラウザで表示することはよくあることなので、異なるショートカットキーを使用して対応...