docker批量操作

来源:2-5 命令行小技巧之批量操作

悟亦凡

2021-10-21

docker container stop $(docker container ps -aq)是停止所有容器吧,如果只批量停止容器中的部分而不是全停呢,命令又如何写

写回答

1回答

麦兜搞IT

2021-10-22

您好,如果有特殊的过滤条件,那可以通过过滤的命令先过滤。windows我不熟悉,但是Linux我们可以使用grep和awk过滤出来所有我们想停掉的container id。

如果您不太熟悉grep和awk命令,可以去网上找找教程,这两个是Linux的基本命令,和Docker没有关系。


举个例子,下面是停掉所有容器名字包含test这几个字符的容器

//img.mukewang.com/szimg/6171dffa09ecd75c17320980.jpg

如果你熟悉xargs命令,那就更方便了

➜  ~ docker container ls -a
CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS                            PORTS     NAMES
81479e432a82   flask-demo   "flask run -h 0.0.0.0"   14 minutes ago   Exited (137) About a minute ago             demo
e84802ace447   flask-demo   "flask run -h 0.0.0.0"   14 minutes ago   Exited (137) 12 minutes ago                 test1
246a522db6a8   flask-demo   "flask run -h 0.0.0.0"   14 minutes ago   Exited (137) 12 minutes ago                 test
➜  ~ docker container ls -a  | grep test | awk '{print $1}'
e84802ace447
246a522db6a8
➜  ~ docker container ls -a  | grep test | awk '{print $1}' | xargs docker container rm
e84802ace447
246a522db6a8
➜  ~ docker container ls -a
CONTAINER ID   IMAGE        COMMAND                  CREATED          STATUS                            PORTS     NAMES
81479e432a82   flask-demo   "flask run -h 0.0.0.0"   15 minutes ago   Exited (137) About a minute ago             demo
➜  ~


这些都是Linux shell常用命令 grep,awk,xargs

0
2
麦兜搞IT
回复
悟亦凡
这个用一行shell命令有点点麻烦,不过你如果要管理很多容器,可以试试写个shell脚本,或者python脚本,会更容易去做一些复杂的事情
2021-10-28
共2条回复

Docker 系统性入门+进阶实践

Docker 完整知识体系及使用指南&优质实践

1953 学习 · 329 问题

查看课程