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

推薦する

HttpsページでBaiduシェアを使用するためのソリューション

サイト全体で https アクセスを有効にしてから、共有コードが利用できなくなり、有効になっていた小...

スワイパープラグインを使用して Vue でカルーセルを実装する例

目次vue - スワイパープラグインを使用してカルーセルを実装するカルーセルのバグを解決するには、w...

webpackの遅延読み込みとプリロードの詳細な説明

目次通常の読み込み遅延読み込みプリロードプリロードを使用しないプリロードの使用要約する通常の読み込み...

JavaScript タイマー原理の詳細な説明

目次1. setTimeout() タイマー2. setTimeout() タイマーを停止する3. ...

MySQLデータ損失の原因と解決策

目次序文問題の説明原因分析拡大する総括する序文最近、データの欠落やデータの損失に関するフィードバック...

Vueでのバスの使用に関する詳細な説明

Vue バス メカニズム (バス) vuex を使用するだけでなく、vue 内の親子以外のコンポーネ...

Idea で Tomcat のソースコードデバッグを開始し、デバッグのために Tomcat に入る方法

idea 開発ツールを使用してコードをデバッグする場合、Java Web プロジェクトで、Web コ...

Vueフロントエンドの効率的な開発のためのレンダリング手順をリストします

v-for ディレクティブリストといえば、ループについても触れなければなりません。v-for 命令は...

MySQL Undo ログと Redo ログの概要

目次元に戻すログUNDOログの生成と破棄UNDOログの保存元に戻すログ機能トランザクションの原子性の...

W3C チュートリアル (15): W3C SMIL アクティビティ

SMIL は、Web にタイミングとメディアの同期のサポートを追加します。 SMIL は、Web に...

サーバー同時実行数の推定式と計算方法

最近、サーバーのストレステストを再度行う必要が出てきました。ここでは、最近学んだ見積もりスキームと見...

Vue2.x プロジェクトのパフォーマンス最適化のためのコード最適化の実装

目次1 v-ifとv-showの使用2. 計算と監視を区別する3 v-for トラバーサルでは、アイ...

CentOS 7.9 の zabbix5.0.14 のインストールと設定プロセス

目次1. 基本的な環境設定2. データベースをインストールする3. zabbix関連コンポーネントを...

チャットバブル効果を実現するCSS

1. レンダリングJD効果シミュレーション効果 2. 原則高さと幅が0のボックスを用意しますこのボ...