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

macOS上Docker Postgres容器删除后自动重生问题求助

问题分析

嘿,这个情况我之前也踩过坑!从你容器的命名some-postgres.1.a0udiazm08y67gcxhnxbhinh8就能看出门道——这种[服务名].[副本序号].[随机字符串]的格式,是Docker Swarm服务的典型标识。Swarm服务有个核心特性:会自动维护你设定的副本数量,哪怕你手动删了容器,它也会立刻新建一个来补位,这就是为啥你删完容器它马上又冒出来的原因。

解决步骤

第一步:处理Docker Swarm服务

  1. 先确认当前运行的Swarm服务列表,找一找有没有some-postgres:
docker service ls
  1. 如果找到了这个服务,直接删除它——这才是切断自动重建的根源:
docker service rm some-postgres

执行完这个命令后,再去删除容器,就不会再自动重建了。

如果不是Swarm?检查Docker Compose

要是上面的命令没找到对应服务,那大概率是Docker Compose在后台管理这个容器:

  1. 回忆下你有没有在某个目录下创建过docker-compose.yml文件(尤其是你构建镜像的目录),找到后进入该目录执行:
docker-compose down

这个命令会彻底停止并删除Compose管理的容器、网络,终止服务的自动重建逻辑。

验证操作

删除服务后,你可以执行以下命令彻底清理残留容器和镜像(如果需要的话):

docker rm -f $(docker ps -a -q)
docker rmi -f $(docker images -q)

这次再看docker ps -a,应该就不会有容器自动冒出来了。


内容的提问来源于stack exchange,提问作者补充:

hostname:~ username$ docker kill $(docker ps -q) && docker rm -f $(docker ps -a -q) && docker rmi -f $(docker images -q)
7d180c7a4532
7d180c7a4532
Untagged: postgres@sha256:1c2cc88d0573332ff1584f72f0cf066b1db764166786d85f5541b3fc1e362aee
Deleted: sha256:e84edf994e8bc77bf6c60970a2bd32c905ed8782296e67aa46c949a4b47cb678
hostname:~ username$ docker ps -a
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS               NAMES
70f3de1d4b8a        e84edf994e8b        "docker-entrypoint.s鈥�"   45 seconds ago      Up 40 seconds       5432/tcp            some-postgres.1.alq5qjn7adyjvbjeo023kx2fq

Apparently

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.28 10:05:39