gpt4 book ai didi

运行多个实例时,Docker compose 不会在容器名称前添加项目名称

转载 作者:行者123 更新时间:2023-12-02 18:47:56 25 4
gpt4 key购买 nike

我有一组使用 docker-compose up -d 运行的 docker到目前为止非常基本

我想运行我的项目的多个实例,我已阅读此 Run multiple docker compose

现在在运行 docker-compose up -p PRNAME -d 时compose 不会将项目名称附加到 prname_container1 等容器中我收到以下错误:

ERROR: for container1  Cannot create container for service service1: Conflict. The container name "/container1" is already in use by container "f7aeb2ef782556ae5b0". You have to remove (or rename) that container to be able to reuse that name.

我可能在这里遗漏了一些东西。

我的 docker-compose.yml 的一部分看起来像
services:
service1:
image: "${PROJECT_REPO}:image"
container_name: "container1"
ports:
- 443:443
- 8000:80
networks:
- db
- proxy
- oauth
depends_on:
- db

最佳答案

当你显式设置 container_name:在您的 docker-compose.yml文件,容器名称将与您指定的完全相同; Docker Compose 不会为其添加每个目录的前缀。

通常这对你来说根本不重要,删除 container_name: 是安全的。 .您仍然可以使用 docker-compose.yml 中的服务名称访问其他容器作为主机名,docker-compose CLI 为管理命令(如 docker-compose stop)提供包装器这将作用于正确的容器。

您还会遇到 ports: 的麻烦这里没有一个明确的解决方案。只有一个容器或进程可以绑定(bind)到主机上的特定端口。您可以省略 ports: 中的第一个端口号, Docker 会为你选择一个端口

ports:
- '80'
- '443'

但是你需要 manually look up the corresponding host port number
docker-compose port service1 80

关于运行多个实例时,Docker compose 不会在容器名称前添加项目名称,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/56323609/

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