gpt4 book ai didi

Docker compose 命令因冲突而失败

转载 作者:行者123 更新时间:2023-12-02 18:44:36 24 4
gpt4 key购买 nike

我正在使用 docker-compose 调出我的项目依赖项。到目前为止,这曾经有效

docker-compose up -d --no-recreate;

然而,今天我尝试在几周后再次运行该项目,但收到了错误消息
Creating my-postgres ... error

ERROR: for my-postgres Cannot create container for service postgres: b'Conflict. The container name "/my-postgres" is already in use by container "dbd06bb1d99eda6f075ea688df16e8b355e559e1759f084dee8f3cddfc535b0b". You have to remove (or rename) that container to be able to reuse that name.'

ERROR: for postgres Cannot create container for service postgres: b'Conflict. The container name "/my-postgres" is already in use by container "dbd06bb1d99eda6f075ea688df16e8b355e559e1759f084dee8f3cddfc535b0b". You have to remove (or rename) that container to be able to reuse that name.'
ERROR: Encountered errors while bringing up the project.

我的 docker-compose.yml 文件是
postgres:
container_name: my-postgres
image: postgres:latest
ports:
- "15432:5432"

Docker 版本是
Docker version 19.03.1, build 74b1e89

Docker 撰写版本是
docker-compose version 1.24.1, build 4667896b

此调用的预期行为是:
  • 如果容器不存在,则创建容器
  • 如果存在则启动容器
  • 如果容器已经启动,只需冷静一下,什么都不做
  • 最佳答案

    Docker Compose 通常会根据其当前项目名称和 services: 的名称分配容器名称。堵塞。指定 container_name:显式覆盖它;但是,这意味着您不能使用不同的项目名称(来自不同的目录)启动同一个 Compose 文件的多个副本,因为不会使用您明确选择的容器名称。

    您几乎从不关心容器名称是什么。只有当您尝试使用普通 docker 时才真正重要操作 Compose 管理的容器的命令;它对服务间通信没有影响。只需删除 container_name:线。

    (出于类似的原因,您几乎总是可以删除 hostname:links: 部分,如果它们对您的整个系统没有实际影响。)

    关于Docker compose 命令因冲突而失败,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57361075/

    24 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com