写在前面
截至目前,在使用docker compose部署项目时,我们仍无法在前端界面对指定的compose部署任务进行取消操作,只能通过重启docker来处理,这是很无奈的处理方法。希望官方尽早推出相关功能按钮,或将compose部署界面可操作化。
解决方法
1、进入ssh或飞牛NAS主机tty界面;
2、输入ps(显示进程)和grep(查询)命令对compose进程进行查询
ps aux | grep "docker compose"
这里我以Homeassistant演示,会列出如下内容,我会对内容进行一定解释,请注意识别:
cming@EWEDL:~$ ps aux | grep "docker compose"(这一句是查询命令,显示所有包含docker compose字样的任务)
root 3521140 0.0 0.0 2576 1536 ? S 17:15 0:00 sh -c docker compose -p homeassistant --progress plain --parallel 1 -f "/vol1/1000/docker/HA/docker-compose.yml" up -d --force-recreate 2>&1
⬆️这是一个 shell 包装进程,用于执行 `docker compose` 命令,可以看到有sh -c字样)
root 3521141 0.0 0.6 1844680 23996 ? Sl 17:15 0:00 docker compose -p homeassistant --progress plain --parallel 1 -f /vol1/1000/docker/HA/docker-compose.yml up -d --force-recreate
⬆️这是实际运行的 `docker compose` 命令进程。
cming 3525750 0.0 0.0 6332 2176 pts/0 S+ 17:19 0:00 grep --color=auto docker compose
⬆️这是我们使用查询命令时产生的临时进程,与实际的compose无关,可以看到用户名也不一样
3、向主进程发送终止信号,使用命令
sudo kill -INT 3521141
输入密码确认即可。
这里我们是用的是int参数,效果类似于Ctrl+c,经过多次测试,飞牛下使用该命令可以正常退出进程,如果实在没有响应,可以尝试-9命令。
此时我们再查看进程就会发现进程已经消失了。该操作不需要重启docker,也不影响后续的docker操作!!!

题外话
strm赶紧做呀我的牛,加油,努力:titter: |