我正在puckel/docker-airflow与CeleryExecutor. 它总共启动了 5 个这样命名的容器
docker-airflow_flower_1_de2035f778e6
docker-airflow_redis_1_49d2e710e82b
..
Run Code Online (Sandbox Code Playgroud)
在开发过程中,我经常不得不停止上述所有容器。但是,我不能做docker stop $(docker ps -aq)因为我的机器上也有其他容器在运行。
有没有办法阻止名称与给定模式匹配的所有容器(例如,名称以docker-airflow上面开头的所有容器)?
y2k*_*ham 10
从@james-coyle 的这篇文章中,以下命令对我有用
docker ps --filter name=docker-airflow* --filter status=running -aq | xargs docker stop
Run Code Online (Sandbox Code Playgroud)
我相信原生docker CLI不提供这样的功能,所以我们必须依靠过滤和老式的bashPIPE 和xargs
更新-1
请注意,根据您的环境,您可能必须执行这些操作
sudo(只需在docker ..上面的两个命令前加上sudo)--filter name="docker-airflow*"(特别是在zsh)迟到总比不到好 ;)。从这篇文章。以下对我有用:
停止名称与给定模式匹配的容器:
$ docker container stop $(docker container ls -q --filter name=<pattern>)
Run Code Online (Sandbox Code Playgroud)
另一方面,如果我们想启动名称与给定模式匹配的容器:
$ docker container start $(docker container ls --all -q --filter name=<pattern>)
Run Code Online (Sandbox Code Playgroud)
注意:对于不同环境相关的提示,@y2k-shubham 的更新是一个很好的起点。
| 归档时间: |
|
| 查看次数: |
1892 次 |
| 最近记录: |