コマンド
ネットワークの確認
docker network ls
ネットワークの種類
| 名称 | 指定方法 | 補足 |
|---|---|---|
| bridge | なし | デフォルトのネットワーク。 コンテナ作成時にネットワークを選ばない場合は bridge に接続する。 |
| host | –net host | host の IP アドレスを共有する。 同じポートを使うコンテナを複数利用することはできない。 |
| none | –net none | ネットワークに接続しない。 |
それぞれdocker create(run)のときに--netオプションを指定することで、参加させるネットワークを選べます。
ネットワークインターフェースに接続している全コンテナを確認
ネットワークの情報や、接続しているコンテナ一覧を確認することができます。ネットワーク名はdocker network lsで確認しましょう。
docker network inspect ネットワーク名
ネットワークを作る
Docker のデフォルトのネットワークは bridge ですが、この中ではコンテナ間をコンテナ名ではなく IP アドレスを指定して通信することしかできないので不便です。
しかし、自分でネットワークを作ると、コンテナ名で通信できるようにできます。
ネットワークを新規作成
docker network create ネットワーク名
IP アドレスなどは指定しなければ自動的に割り振られます。作成できたらlsでちゃんと作られたか確認してみましょう。
docker network ls
コンテナをネットワークに接続させる
コンテナ作成時( create / run )に、任意のネットワークに接続させる
--netオプションをつけることで、コンテナ作成時に任意のネットワークに接続させることができます。
--net ネットワーク名
例:web1 という httpd のコンテナを mynet ネットワークに参加させて起動する
docker run -dit --name web1 --net mynet httpd
既存コンテナを、任意のネットワークに接続/切断する
すでに作成済みのコンテナを接続 or 切断させる場合は、connectとdisconnectを使います。
接続
docker network connect ネットワーク名 コンテナ名
切断
docker network disconnect ネットワーク名 コンテナ名
ネットワークを削除
docker network rm ネットワーク名
注意点として、ネットワークに参加しているコンテナがあると削除できません。
ネットワークに接続しているコンテナを全て削除するか、もしくはコンテナを全てネットワークから切断しましょう。
切断するなら...
docker network disconnect コンテナ名
削除するなら...
docker rm コンテナ名