前回からの続きです。
- ■はじめに
- ■① 新規コンテナを作成する際にDockerネットワークを指定する方法
- ■② 既存コンテナを任意のDockerネットワークに繋ぎなおす方法
- ■同一bridgeネットワーク内でのコンテナ名での疎通確認
■はじめに
任意のDockerネットワークをコンテナに紐付ける際、
① 新規コンテナを作成する際にDockerネットワークを指定する方法
② 既存コンテナを任意のDockerネットワークに繋ぎなおす方法
の2つがあります。
■① 新規コンテナを作成する際にDockerネットワークを指定する方法
docker run実行時に--netオプションを指定します。
今回はDockerコンテナ名がh1 , h2 というhttpdコンテナを作成しております。
作成時に、myns1というbridgeネットワークを指定しています。
docker network inspect myns1 でコンテナのIPアドレスを確認します。
上記の通り、172.18.0.3 , 172.18.0.2のIPアドレスが割り当てられています。
■② 既存コンテナを任意のDockerネットワークに繋ぎなおす方法
docker network connectとdocker network disconnectコマンドを利用します。
ここでは、上記①でh2コンテナをmyns1に繋いでいる為、
一度myns1から切断し、myns2に繋ぎなおしてみます。
【切断】
docker network disconnect ネットワーク名 コンテナ名
上記でh2コンテナをmyns1から切断することができました。
【再接続(繋ぎなおし)】
docker network connect ネットワーク名 コンテナ名
■同一bridgeネットワーク内でのコンテナ名での疎通確認
任意のbridgeネットワークの場合、
コンテナ名でコンテナ間通信が可能なため、実際に検証してみます。
※念のためですが、デフォルトのbridgeネットワークではコンテナ名での疎通(名前解決)はできません。常にIPアドレスを指定する必要があります。
検証のため、busyboxのコンテナを2つ新規作成(bb1 , bb2)し、
bb1,bb2コンテナが所属するネットワークはmyns1とします。
【コンテナ新規作成】
【コンテナの所属ネットワークを確認】
【コンテナ(bb1)にログインし、bb2にPing疎通】
以上です。