Help us understand the problem. What is going on with this article?

Docker1.10に追加されたEmbedded DNS Serverを試す

More than 3 years have passed since last update.

Docker1.10からユーザー定義ネットワークを使うと同じネットワーク内のコンテナのIPをコンテナ名で引けるようになりました。
https://docs.docker.com/engine/userguide/networking/configure-dns/

これを使うとコンテナ同士で連携している場合などにコンテナの差し替えがとても簡単になりそうです。
アプリケーションのデプロイもdocker rename(コンテナ名を変更する)で可能になるのではないでしょうか。

実行例

ユーザー定義ネットワークを作成する

$ docker network create --driver bridge isolated_nw

作成したネットワークを指定して通信先にするコンテナを立ち上げ

$ docker run -ti --net=isolated_nw --name=foo busybox

作成したネットワークを指定して通信元のコンテナを立ち上げて、コンテナ名を使って通信

$ docker run -ti --net=isolated_nw --name=bar busybox
$ ping foo
PING foo (172.18.0.2): 56 data bytes
64 bytes from 172.18.0.2: seq=0 ttl=255 time=0.050 ms
64 bytes from 172.18.0.2: seq=1 ttl=255 time=0.061 ms
64 bytes from 172.18.0.2: seq=2 ttl=255 time=0.090 ms

--- foo ping statistics ---
3 packets transmitted, 3 packets received, 0% packet loss
round-trip min/avg/max = 0.050/0.067/0.090 ms

デフォルトネットワークのコンテナをユーザー定義ネットワークに接続する

デフォルトのブリッジ(docker0)でコンテナを起動。このままでは先ほどのユーザー定義ネットワークに参加しているコンテナから名前解決できない。

$ docker run -ti --name=hoge busybox

作成済みのユーザー定義ネットワークにコンテナを接続する

$ docker network connect isolated_nw hoge

余談

docker renameによる簡単デプロイが可能になりそうですがダウンタイムが発生しますね。
docker rename自体は高速なので一瞬だとは思いますが。
複数回のdocker renameをアトミックに行える機能とか追加されたらゼロダウンタイムのデプロイができるのにとかいう妄想が広がります。

追記
docker renameでアプリケーションサーバのデプロイをするとして、前段にNginxがいる構成の場合、NginxのDNSキャッシュがあるのでゼロダウンタイムでのデプロイが可能になるはず。

追記2
1.10.3にはIPv6絡みのバグがあって、名前解決にすごく時間がかかったりする場合があるみたいです。
その現象が発生する場合はホストマシンのIPv6を無効にするととりあえず直ります。
このバグの修正は1.11(4/11リリース)に入るようです。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした