Docker
コンテナの接続
サーチ…
パラメーター
パラメータ | 詳細 |
---|---|
tty:true | docker-compose.ymlでは、 tty: true フラグはコンテナのsh コマンドが入力待ちの状態を維持するようにします。 |
備考
host
およびbridge
ネットワークドライバは、単一のドッカーホスト上のコンテナに接続できます。コンテナが1台のマシンを超えて通信できるようにするには、オーバーレイネットワークを作成します。ネットワークを作成する手順は、ドッカーホストの管理方法によって異なります。
- スウォームモード:
docker network create --driver overlay
- docker / swarm : 外部のKey-Valueストアが必要
ドッカーネットワーク
同じドッカーネットワーク内のコンテナは公開されたポートにアクセスできます。
docker network create sample
docker run --net sample --name keys consul agent -server -client=0.0.0.0 -bootstrap
領事のDockerfileは公開さ8500
、 8600
、およびいくつかのより多くのポートを。デモを行うには、同じネットワーク内の別のコンテナを実行します。
docker run --net sample -ti alpine sh
/ # wget -qO- keys:8500/v1/catalog/nodes
ここで、領事コンテナは、最初のコマンドで与えられたkeys
から解決されkeys
。 Docker は 、-- --name
コンテナを見つけるために、このネットワーク上でDNS解決を提供します。
ドッカー作成
ネットワークは、構成ファイル(v2)で指定できます。デフォルトでは、すべてのコンテナは共有ネットワークにあります。
このファイルから始めてください: example/docker-compose.yml
:
version: '2'
services:
keys:
image: consul
command: agent -server -client=0.0.0.0 -bootstrap
test:
image: alpine
tty: true
command: sh
docker-compose up -d
このスタックを起動すると、親ディレクトリの後ろに名前が付けられたネットワークが作成されexample_default
。この例ではexample_default
です。 docker network ls
確認する
> docker network ls
NETWORK ID NAME DRIVER SCOPE
719eafa8690b example_default bridge local
アルパインコンテナに接続して、コンテナが解決して通信できることを確認します。
> docker exec -ti example_test_1 sh
/ # nslookup keys
...
/ # wget -qO- keys:8500/v1/kv/?recurse
...
作成ファイルには、 dockerネットワークコマンドからネットワーク名、ドライバ、およびその他のオプションを指定するためのnetworks:
最上位レベルのセクションがあります。
コンテナのリンク
--link
引数、およびlink:
sections --link
-composeは他のコンテナに別名を作成します 。
docker network create sample
docker run -d --net sample --name redis redis
リンクを使用すると、元の名前またはマッピングのいずれかで赤い枠が解決されます。
> docker run --net sample --link redis:cache -ti python:alpine sh -c "pip install redis && python"
>>> import redis
>>> r = redis.StrictRedis(host='cache')
>>> r.set('key', 'value')
True
ドッカーの前に1.10.0
コンテナもセットアップネットワーク接続 - ドッカーネットワークによって提供される動作。それ以降のバージョンのリンクが唯一の提供legacy
デフォルトのブリッジネットワークに影響を。