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を実行してそれに接続できるようになります。
結論:
この記事では、Dockerコンテナーリンクを構成して操作する方法を説明しました。 Dockerは、単一のアプリケーションに使用される非常に使いやすいコンテナーテクノロジーです。世界中で多くの方にご利用いただいており、その人気の理由のひとつは使いやすさです。