Dockerコンテナリンク

Docker Container Links



多くの単一アプリケーションは、Dockerをコンテナーとして使用します。世界中で多くの方にご利用いただいており、その人気の理由のひとつは使いやすさです。 Dockerを使用およびセットアップし、実験に使用を開始するために、ソフトウェアに熟練している必要はありません。ただし、ユーザーがより複雑なサーバーを試す場合は、Dockerネットワーク技術について知っておく必要があります。以下の記事では、Dockerコンテナリンクとそのネットワークの機能について説明します。

Dockerコンテナリンク

Dockerリンクの主な用途は、コンテナを相互にリンクできるようにすることです。バージョン1.9より前は、これがコンテナを接続する唯一の方法でした。 Dockerリンクは将来も残ることはなく、人々は通常、新しい設計ではこれを避けます。ただし、初心者として、レガシーコードを処理する必要がある場合は、リンクについてある程度の知識が必要です。







Dockerリンクの例

次の段落では、RedisサーバーとRedisクライアントとしてそれぞれ機能する2つのコンテナーを作成します。 Redisクライアントを使用してRedisサーバーにデータと情報を入力します。次の最初のコマンドは、redis_serverと呼ばれるRedisサーバーを起動します。



$docker run-NS - 名前redis_server redis



$sudodockerps





次のコマンドは、redis_clientと呼ばれるRedisクライアントを起動するために使用されます。

$sudodocker run-それ --rm - 名前redis_client - リンクredis_server:redisDB redisbash

ここでは、「link」オプションを使用して、redisDBに情報を提供しながらredis_serverをリンクします。コマンドを入力すると、次のようなコマンドプロンプトが目の前に開きます。



@e2364251d31d:/データ

次に入力するコマンドは、pingをインストールするために使用されます。

$apt-get update

$apt-get upgrade

$apt-get installiputils-ping

コマンドを入力してRedisサーバーにpingを実行すると、返信が返されます。

$pingredisDB

次に、Redisサーバーに接続するコマンドを追加します。

$sudodockerexec -それredis_clientNS

$ redis-cli –h redisDB
redisDB:6379>>

この新しいコマンドDB:6379は、Redisサーバーに接続していることを意味します。これで、サーバーに情報を追加できます。以下に例を示します。

$ redisDB:6379>>設定「ハッピープリンス」
$ redisDB:6379>>設定著者'マーク・トウェイン'
$ redisDB:6379>>本を手に入れる
$ redisDB:6379>>著者を取得する

Dockerネットワーキング

Dockerは、1.9バージョンでネットワーク機能をインストールしました。次のコマンドを入力すると、新しいバージョンでは3つのネットワークが自動的に作成されます。

$sudoDockerネットワークls

なし、ブリッジ、およびホストは、このプロセス全体で存在するようになるネットワークです。彼らに以下で議論させてください:

橋: ブリッジネットワークはDocker0を表します。 Docker0は、接続されている他のネットワークインターフェイスにパケットを転送することをタスクとする仮想イーサネットブリッジです。さらに、クライアントは自分で設計したブリッジを構築できます。

ホスト: ホストネットワークの主なタスクは、ホストネットワークスタックにコンテナを追加することです。ホストネットワークを定義すると、ホストとコンテナの分離と違いはなくなります。

ノート: noneネットワークの主なタスクは、ネットワークをオフにすることです。一部のアプリはネットワークなしで実行され、何らかの理由でネットワークを必要としません。

ユーザー定義のブリッジネットワークに基づくネットワークの例

このセクションは、Redisサーバーを使用してDockerをテストするのに役立ちます。まず、コマンドを使用して内部ネットワークと呼ばれるネットワークを作成します。

$sudoドッカーネットワーク作成-NSブリッジinternal_network

ネットワークで調査した後、サブネットとゲートウェイが作成されていることを構成します。

$sudodockernetworkはinternal_networkを検査します
[
{{
'名前''internal_network'
'Id''9bc2213d3a39d46765fe50ef8e9b7819df8e7124b0a46552447cbda84e31b049'
'作成した''2017-11-02T08:01:05.119528611Z'
'範囲''ローカル'
'運転者''橋'
'EnableIPv6'NS
「IPAM」{{
'運転者''ディフォルト'
「オプション」{{}
「構成」[
{{
「サブネット」'172.18.0.0/16'
'ゲートウェイ''172.18.0.1'
}
]
}
'内部'NS
「取り付け可能」NS
「イングレス」NS
'ConfigFrom'{{
'通信網'''
}
'ConfigOnly'NS
「コンテナ」{{}
「オプション」{{}
「ラベル」{{}
}
]

以前に作成されたブリッジネットワークを一覧表示することもできます。

$sudoDockerネットワークls

次に、内部ネットワークブリッジをredis_serverに接続するためのコマンドを実行します。

$sudodocker run-NS - 通信網= internal_network - 名前= redis_server redis

そして今、クライアントを接続します:

$sudodocker run-NS - 通信網= internal_network - 名前= redis_client redisbash

内部ネットワークを調査すると、2つのコンテナがブリッジのネットワークに含まれていることがわかります。

$sudodockernetworkはinternal_networkを検査します


これで、redis_clientから取得して、後でredis_server広告にpingを実行してそれに接続できるようになります。

$pingredis_server

結論:

この記事では、Dockerコンテナーリンクを構成して操作する方法を説明しました。 Dockerは、単一のアプリケーションに使用される非常に使いやすいコンテナーテクノロジーです。世界中で多くの方にご利用いただいており、その人気の理由のひとつは使いやすさです。