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

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

【Docker】コンテナが所属しているbridgeネットワークを削除したらどうなるのか

前回、前々回からの続きです。
任意のbridgeネットワークを削除する方法と、その際の注意点についてです。

www.guri2o1667.work

 

■任意のネットワークを削除

以下コマンドを実行することでネットワークを削除できます。
docker network rm 削除対象ネットワーク

ここでは、myns1を削除しています。

f:id:guri2o1667:20210527145507p:plain

■注意点1:コンテナがUpしているとネットワークが削除できない

コンテナがUpしていると、
そのコンテナが所属しているネットワークは削除できません。
以下のようなエラーが出力されます。

f:id:guri2o1667:20210527145603p:plain

■注意点2:ネットワーク削除後、コンテナを起動できない

考慮1の通り、ネットワーク削除時にはコンテナが停止している必要があります。

また、以下の流れを考えていた場合、③は失敗します。

① コンテナ停止

② ネットワーク削除

③ コンテナ起動

③の実行時は以下の通りエラーが出力されます。

f:id:guri2o1667:20210527150403p:plain

■注意点3:ネットワーク削除後、コンテナを起動するには

以下の通り、接続先を変更(docker network disconnect , connect)するかコンテナ廃棄/再作成が必要です。

接続先の変更の場合は以下の流れとなります。
① docker network disconnectを実行

② docker network connectを実行

③ コンテナ起動

ちなみに、上記①を未実施で②③を実施した場合
docker inspect bb1を実行すると下記の通りになります。
※bb1にmyns1 , myns2の両方がアタッチされた状態になります。

f:id:guri2o1667:20210527151123p:plain

この状態でbb1コンテナを起動しようとすると、下記の通りエラーとなります。

f:id:guri2o1667:20210527151342p:plain


上記①、②、③の流れで実施すればbb1は起動します。

f:id:guri2o1667:20210527152214p:plain




以上です。