(ヽ'ω`) < Dockerのコンテナを一括削除
(ヽ'ω`) < あわわわわわ
検証とかでDockerを使い出し、デプロイが簡単だからとポンポン作っていたら、# docker ps -a
の出力がえらいことに。
いちいちコンテナIDを指定してdocker rm
をするのも一苦労なので、コンテナを一括削除してくれるスクリプトを。
(ヽ'ω`) < 力技スクリプト
#!/bin/bash docker stop `docker ps -a | grep $1 | cut -d" " -f1` docker rm `docker ps -a | grep $1 | cut -d" " -f1`
適当な名前(docker-rm-all)をつけて、/usr/local/bin/
にでも配置。
引数に何らかの文字列を渡して、それがマッチした行のコンテナIDのものをstopしてrmする。
引数のところをもうちょっと綺麗に作りなおしたいので、そのうち手を入れる。
(ヽ´ω`) < …
Dockerのドキュメントみてたら、docker run
の時に--rm=ture
オプションか--rm
フラグをつければForegroundモードなら、コンテナの実行が終了されたら自動的に削除されるらしい。
## --rmフラグなし [root@localhost ~]# docker run -i -t centos:centos6 /bin/bash bash-4.1# exit exit [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES 4cb7661cf5de centos:centos6 /bin/bash 4 seconds ago Exited (0) 2 seconds ago happy_goodall3 ## --rmフラグあり [root@localhost ~]# docker run -i -t --rm centos:centos6 /bin/bash bash-4.1# exit exit [root@localhost ~]# docker ps -a CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES [root@localhost ~]#