You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Docker环境下Adminer容器自动重建启动无法停止的解决问询

彻底停止Docker Swarm中自动重建的Adminer容器解决方案

我之前在Docker Toolbox环境里碰到过完全一样的问题:用docker-compose -f stack.yml up启动了基于MySQL和Adminer镜像的容器,stack.yml里把restart参数设成了always,结果删除Adminer容器后,它立刻就会自动重建出一个新容器(名字格式像mysql_adminer.1.4cxxxxxxxxxxxxx5iyt),怎么都停不下来。

我当时试了好几种方法都没用:

  • 执行docker update --restart=no <containerId>修改容器重启策略
  • 把stack.yml里的restart改成"no"
  • 执行docker-compose -f stack.yml down
  • 重启VirtualBox里的Docker镜像
  • 删除本地相关的配置文件

后来才搞明白问题所在:当你用stack.yml配合docker-compose up(或者docker stack deploy)启动容器时,其实是在Docker Swarm模式下创建了服务(Service),而不是普通的独立容器。Swarm服务的核心特性就是维持你指定的副本数量,哪怕你手动删掉容器,服务也会自动重建新容器来满足副本要求——这就是之前那些方法都失效的原因,你操作的是容器,但控制重建的是Swarm服务。

正确的解决方案

要彻底停止自动重建,你需要直接删除对应的Swarm服务:

  1. 先列出当前运行的Swarm服务,找到目标服务:
    docker service ls
    
    你会看到类似mysql_adminer和mysql_db的服务条目。
  2. 删除这两个服务:
    docker service rm mysql_adminer
    docker service rm mysql_db
    
    执行完这两个命令后,Swarm就不会再自动重建这些容器了,问题彻底解决。

内容的提问来源于stack exchange,提问作者hkguile

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.29 06:39:31