Docker重新启动多个Docker-Compose过程标签的特定服务
我有多个集合的两个Docker服务同时运行,因此我的docker ps
日志看起来像这样:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0a8e26682915 image_name:latest "bash -c 'pip instal…" About a minute ago Up About a minute process_name_1_actions_1
ed8b56ff29b1 image_name:latest "bash -c 'cd live-bo…" About a minute ago Up About a minute 0.0.0.0:5005->5005/tcp, :::5005->5005/tcp process_name_1_model_1
6d8016412d12 image_name:latest "bash -c 'pip instal…" About a minute ago Up About a minute process_name_2_actions_1
128d3605297a image_name:latest "bash -c 'cd live-bo…" About a minute ago Up About a minute 0.0.0.0:5006->5005/tcp, :::5006->5005/tcp process_name_2_model_1
请注意,这些服务的名称具有标签。我想创建一个可以通过标签循环遍历这些过程集的Shell脚本,并重新启动action_1
服务。类似:
declare -a arr=("process_1" "process_2")
for i in "${arr[@]}"
do
# here, restart only the 'actions_1' service of process i.
done
为此的理由是,标题为_MODEL_1
的过程需要很长时间才能产生。标题为_actions_1
的过程需要经常重新启动,并且不需要很长时间才能产生。因此,运行docker-compose
,然后是docker-compose
是一个非常乏味的过程。
I have multiple sets two of Docker services running simultaneously, so my docker ps
logs look something like this:
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
0a8e26682915 image_name:latest "bash -c 'pip instal…" About a minute ago Up About a minute process_name_1_actions_1
ed8b56ff29b1 image_name:latest "bash -c 'cd live-bo…" About a minute ago Up About a minute 0.0.0.0:5005->5005/tcp, :::5005->5005/tcp process_name_1_model_1
6d8016412d12 image_name:latest "bash -c 'pip instal…" About a minute ago Up About a minute process_name_2_actions_1
128d3605297a image_name:latest "bash -c 'cd live-bo…" About a minute ago Up About a minute 0.0.0.0:5006->5005/tcp, :::5006->5005/tcp process_name_2_model_1
Note that the names of these services have tags. I would like to create a shell script which can loop through these sets of processes by their tags, and restart the actions_1
service. Something like:
declare -a arr=("process_1" "process_2")
for i in "${arr[@]}"
do
# here, restart only the 'actions_1' service of process i.
done
Justification for this is that the processes titled _model_1
takes a long time to spawn. The process titled _actions_1
needs to be restarted often, and does not take a long time to spawn. For this reason, running docker-compose down
followed by docker-compose up
is a very tedious process.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
使用此命令
Docker PS -Format'{{.names}}} {{.id}}}'| awk' {if($ 1〜“ _actions_1”)打印$ 2;}'| XARGS -P 10 docker restart
描述::
docker ps -format'{{.names}}} {.ID}}}
:列出一个只有2个字段的当前容器 - 名称&amp ; idawk
:通过正则匹配,请检查$ 1 IE映像名称,然后打印相应的$ 2 IE容器IDXARGS
在输出时逐一执行指定的命令。-p 10
最多可以并行执行10个重新启动,以加快速度。Use this command
docker ps --format '{{.Names}} {{.ID}}' | awk '{if ($1 ~ "_actions_1") print $2;}' | xargs -P 10 docker restart
Description ::
docker ps --format '{{.Names}} {{.ID}}
: Lists current containers running with only 2 fields - name & idawk
: Checks $1 i.e. image name via regex, if matches, then prints corresponding $2 i.e. container idxargs
Executes specified command one by one upon the output.-P 10
executes 10 restarts in parallel at most, to speed things up.