【Docker】ネットワーク関連のまとめ

  • Docker

コマンド

ネットワークの確認

docker network ls

ネットワークの種類

名称指定方法補足
bridgeなしデフォルトのネットワーク。
コンテナ作成時にネットワークを選ばない場合は
bridge に接続する。
host–net hosthost の 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 切断させる場合は、connectdisconnectを使います。

接続

docker network connect ネットワーク名 コンテナ名

切断

docker network disconnect ネットワーク名 コンテナ名

ネットワークを削除

docker network rm ネットワーク名

注意点として、ネットワークに参加しているコンテナがあると削除できません。

ネットワークに接続しているコンテナを全て削除するか、もしくはコンテナを全てネットワークから切断しましょう。

切断するなら...
docker network disconnect コンテナ名

削除するなら...
docker rm コンテナ名