空の下でひっそりと

てきとーに更新していきます。レーザーカッターや3Dプリンタが好き

dockerの--remove-orphansオプションを使って関連しているコンテナをまとめて削除した話

 

dockerを使って開発環境の作成をしているのですが、一度デーモンで起動しているdockerコンテナを消さないままファイルを削除して、新しく同じプロジェクトをcloneしてきたときにエラーがでたので、解消法を調べてました。

 

環境と自分の理解レベル


macのローカル環境構築にdockerを使用しており、私はdockerは概念と利用の仕方を知ってるくらいです。

 

 生じたエラー

 

``ERROR: error while removing network: network プロジェクト名 id "c82ba231a7cd602e68a229bb959c10f1d75c48b0a4d16ba2ffc87079cd3d3707" has active endpoints```

 

このエラーは2回目にcloneしてきた`docker-compose up -d`を実行したときに生じました。

 

内容は、「ネットワークの削除中にエラー:削除しようとしたエンドポイントは動いています。」

 

これは、2回目にcloneに```docker-compose up -d```実行時に、1回目に作成したコンテナとも同じ名前で結びついているのが原因みたいです。

 

参考になった記事

 

https://qiita.com/shundayo/items/8b24af5239d9162b253c

https://qiita.com/dmrt/items/d82281de1b822f903052

http://docs.docker.jp/compose/reference/down.html

 

上記の記事を参考に、```docker-compose down```に```--remove-orphans```のオプションをつけて、Composeファイルで定義していないサービス用のコンテナも削除します。

```docker-compose down --remove-orphans```

この状態でもう一度`docker-compose up -d`すると、ただしく動作できました!

 

 最後に

記事を書いている途中に、デーモンで起動していたコンテナを消すとよかったのかなと思ったりしました。。。今度ちゃんとdockerの勉強しよう。。