コマンド
ネットワークの確認
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 コンテナ名