Dockerコンテナ接続実装手順の分析

Dockerコンテナ接続実装手順の分析

一般的に言えば、コンテナが起動した後、ポート マッピングを通じてコン​​テナが提供するサービスを使用します。実際、ポート マッピングはコンテナ サービスを使用するための 1 つの方法にすぎません。この方法に加えて、コンテナ接続を使用してコンテナ サービスを利用することもできます。

たとえば、2 つのコンテナがあり、1 つのコンテナで SpringBoot プロジェクトを実行し、もう 1 つのコンテナで MySQL データベースを実行するとします。SpringBoot は、ポート マッピングを介して MySQL サービスにアクセスすることなく、コンテナ接続を介して MySQL データベースに直接アクセスできます。

話を単純にするために、もう一つ例を挙げてみましょう。

コンテナは 2 つあり、1 つは nginx コンテナ、もう 1 つは ubuntu です。nginx コンテナを起動しますが、ポート マッピングを割り当てず、ubuntu を起動し、コンテナ経由で接続し、ubuntu で nginx にアクセスします。

具体的な手順は次のとおりです。

まず、nginx コンテナを起動しますが、ポートは割り当てません。コマンドは次のとおりです。

docker run -d --name nginx1 nginx

コマンド実行結果は次のとおりです。


コンテナが正常に起動すると、ホスト マシンではアクセスできなくなります。

Ubuntuを起動する

次に、Ubuntu を起動し、次のように nginx との接続を確立します。

docker run -dit --name ubuntu --link nginx1:mylink ubuntu bash

ここで、--link は接続を確立するために使用されます。nginx1 は接続を確立するコンテナであり、次の mylink は接続のエイリアスです。

操作が成功したら、ubuntu コマンドラインを入力します。

docker exec -it ubuntu bash

次に、nginx 情報を表示する方法は 2 つあります。

最初

環境変数情報を表示するには、Ubuntu コンソールで env を直接入力します。


Docker が nginx 用の一連の環境変数を作成していることがわかります。各変数の先頭には MYLINK が付きます。これは、接続に指定したエイリアスです。開発者はこれらの環境変数を使用して、アプリケーションが nginx に接続するように構成できます。接続は安全かつプライベートです。 アクセス結果は次のとおりです。

2番目

別の方法としては、次のように Ubuntu の hosts ファイルを表示する方法があります。


ご覧のとおり、Ubuntu の hosts ファイルでは nginx1 にいくつかのエイリアスが与えられています。これらのエイリアスを使用して nginx1 に直接アクセスできます。

ヒント:

デフォルトでは、curl コマンドは Ubuntu コンテナにインストールされていません。手動でインストールする必要があります。インストール コマンドは次のとおりです。

apt-getアップデート
apt-get をインストール curl

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

以下もご興味があるかもしれません:
  • Dockerコンテナ同士を接続する3つの方法の詳しい説明
  • Docker コンテナに接続するための Docker SSH サンプル コード
  • Docker接続Spring BootとMySQLコンテナ方式の紹介
  • docker の詳細な説明: ホストが docker コンテナに ssh 接続できるようにする
  • Docker はリンクを使用してコンテナ間の接続を確立する方法を教えてください。
  • Docker マルチコンテナ接続 (Tomcat+MySQL を例に)
  • Docker経由でMysqlコンテナ+Tomcatコンテナ接続環境を構築する詳細説明
  • DockerでMySQLコンテナを作成し、コマンドラインからコンテナに接続する方法の詳細な説明
  • Dockerはコンテナ間の接続を確立するためにLinkを使用する

<<:  サブクエリ最適化における MySQL 選択の実装

>>:  レンダリング関数と JSX の詳細

推薦する

Nginxを再コンパイルしてモジュールを追加する方法

Nginx をコンパイルしてインストールするときに、http_ssl_module などの一部のモジ...

無効にするとフォームの入力が送信できない問題の解決方法

以前、追加と変更を一緒に記述したテストプログラムを書いたことがあります。変更が必要な場合は、フォーム...

MySQLストアドプロシージャの原理と使用法の詳細な説明

この記事では、例を使用して、MySQL ストアド プロシージャの原理と使用方法を説明します。ご参考ま...

Node.js は、異なるリクエストパスに応じて異なるデータを返します。

目次1. 異なるリクエストパスに応じて異なるデータを返す方法を学びます。 2. 送信データ: データ...

超詳細なMySQL使用仕様の共有

最近、データベース関連の操作が多くなり、会社の既存の仕様はあまり包括的ではありません。インターネット...

Nginx ドメイン名 SSL 証明書の構成 (Web サイトの http を https にアップグレード)

序文HTTP と HTTPS日常生活でよく使われる URL は、おおまかに次の 2 種類に分けられま...

最もよく使用されるJavaScriptイベントについて詳しく学ぶ

目次JavaScript イベント:よく使用されるイベント:イベントアクション要約するJavaScr...

Dockerコンテナのログ処理の詳細な説明

Docker には多くのログ プラグインがあります。デフォルトでは json-file を使用します...

vue-cli を使用してプロジェクトを作成し、webpack でパッケージ化する方法

1. 環境を準備する(Node.jsをダウンロードし、環境変数を設定する) 2. vue-cliをグ...

MySQL インデックスの使用方法 (単一列インデックスと複数列インデックス)

1. 単一列インデックスどの列にインデックスを作成するかを選択することは、パフォーマンス最適化プロ...

MySQL数千万の大規模データに対する30のSQLクエリ最適化テクニックの詳細な説明

1. クエリを最適化するには、テーブル全体のスキャンを避けてください。まず、where と orde...

Dockerプライベート倉庫の構築と利用の詳細説明

イメージは hub.docker.com に保存できますが、ネットワーク速度が比較的遅いです。内部環...

vue で h5 側のアプリを開きます (Android か Apple かを判断します)

1. 開発環境 vue+vant 2. コンピュータシステム Windows 10 Profess...

MySQL 8.0.23 インストールの超詳細なチュートリアル

目次序文1. 公式サイトからMySQLをダウンロードする2. 解凍ファイルを設定する3. 初期化4....

DOCTYPE要素詳細説明完全版

1. 概要この記事では、DOCTYPE要素を体系的に説明します。同時に、多くの情報を調べました。イン...