自由気ままに書いちゃおう

好きなことをつらつらと・・・

【Docker】bridgeネットワークについて

今回はbridgeネットワークについてです。
※Dockerコンテナ内で利用するネットワークの一つがbridgeネットワークです。

■bridgeネットワークとは

docker runコマンドやdocker createコマンドを実行時、
ネットワーク関連のオプションを指定しない限り、
デフォルトではbridgeネットワークに各コンテナが接続されます。

■bridgeネットワークを確認する

以下コマンドを実行します。

f:id:guri2o1667:20210526132638p:plain

「NAME」列に「bridge」と記載されているのが、bridgeネットワークのことです。

■コンテナ側に割り当てれらているIPアドレスを確認する

コンテナのIPアドレスを確認する方法は大きく分けて3つあります。
① コンテナにログインし、ipコマンド等を実行する。
② docker inspect コマンドを使う。
③ docker network inspect bridgeコマンドを使う。※個人的に推奨

【上記①コンテナにログインし、ipコマンド等を実行する】

以下はbb1コンテナにログインして、ifconfigコマンドを実行したときの結果です。

f:id:guri2o1667:20210526143920p:plain

【上記②コンテナ上からdocker inspectコマンドを使う】

ここではbb1コンテナ(BusyBoxコンテナ)の情報を記載しています。

f:id:guri2o1667:20210526133138p:plain


コンテナに割り当てられているIPアドレスは上図の中の以下の部分です。

f:id:guri2o1667:20210526133425p:plain

■補足:docker inspect --formatについて

特定項目のみを出力したい場合には、
docker inspect --formatを利用します。
以下のような感じです。

f:id:guri2o1667:20210526133902p:plain

--format="{{}}" は固定です。
内側の{}内にドット区切りでパラメータを記載致します。

【上記③docker network inspect bridgeコマンドを使う】

bridgeネットワークの情報を参照したいため、
以下コマンドでもbridgeネットワークに接続されているコンテナのIPアドレスがわかります。

f:id:guri2o1667:20210526135844p:plain

出力結果の下の方に「Containers」項目があるため、
そこに着目するとIPアドレス(IPv4Address)が表示されていることがわかります。
※下図は3台のコンテナが存在している環境での当該コマンドの結果です。

f:id:guri2o1667:20210526135948p:plain

■Dockerコンテナ間での疎通確認を実施

試しにbb1,bb2コンテナ間でping疎通を行ってみたいと思います。
bb1 : 172.17.0.2
bb2 : 172.17.0.3

f:id:guri2o1667:20210526144017p:plain


以上です。