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 の詳細

推薦する

LinuxでのDockerのインストールチュートリアル

Docker パッケージは、デフォルトの CentOS-Extras リポジトリにすでに含まれていま...

MySQL データ ウェアハウスを保護するための 5 つのヒント

さまざまなソースからデータを集約することで、中央倉庫を作成できます。データ ウェアハウスは、ビジネス...

ウェブサイトはグレー表示されています。画像を含む互換コードはすべてのブラウザをサポートしています

通常、国喪の日、大地震の日、清明節には、ウェブサイト全体を灰色にして、故人への哀悼の意を表します。そ...

Dockerイメージ解析ツールのダイブ原理解析

今日は、Docker イメージ、各レイヤーの内容を調べ、Docker/OCI イメージのサイズを縮小...

VMWare を使用して Windows 上で Linux 環境を構築する手順 (画像とテキスト)

Mac を返却して以来、元のラップトップは使用されていません。このラップトップの構成は非常に良好で...

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

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

Centos7 の起動プロセスと Systemd での Nginx の起動構成

Centos7 の起動プロセス: 1.post(電源投入時のセルフテスト) 電源投入時のセルフテスト...

RHCEはApacheをインストールし、ブラウザでIPにアクセスします

1. at は、5 時間後にルート ディレクトリの at_test ファイルに「これは at タスク...

HTML TextArea でのフォーマット保存の問題の解決方法

textarea の形式は保存時にデータベースに保存できますが、表示時には /n と相互に変換できな...

ElementuiはデータをxlsxとExcelテーブルにエクスポートします

最近、Vue プロジェクトについて知り、ElementUI でデータを xlsx および Excel...

VS2019をMySQLデータベースに接続するプロセスと一般的な問題の概要

今日の午後からVS2019をMySQLで使えるのではないかと思い、いろいろ環境構築を始めました。プロ...

MySQL インデックス データ構造の詳細な分析

目次概要インデックスデータ構造バイナリツリー赤黒木BツリーB+ツリーハッシュ索引InnoDB インデ...

ネイティブ js でカスタム難易度のマインスイーパ ゲームを実装する

この記事の例では、マインスイーパゲームを実装するためのjsの具体的なコードを参考までに共有しています...

MySQLテーブルの内容の変更を監視し、MySQL binlogを有効にする

序文binlog は、MySQL のすべての追加、削除、および変更ステートメントを記録するバイナリ ...

Dockerfile テキストファイルの使用例の分析

Dockerfile は、イメージをビルドするために使用されるテキスト ファイルです。テキスト コン...