我有一组运行时使用的 dockerdocker-compose up -d
到目前为止还很基本
我想运行我的项目的多个实例,并且我已阅读此内容运行多个 docker compose https://stackoverflow.com/questions/43957259/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
文件,容器名称将为exactly您指定的内容; Docker Compose 不会为其添加每个目录的前缀。
通常这对您来说根本不重要,并且可以安全地删除container_name:
。您仍然可以使用其他容器的服务名称来访问它们docker-compose.yml
作为主机名,并且docker-compose
CLI 为管理命令提供了包装器,例如docker-compose stop
这将作用于正确的容器。
你也会遇到麻烦ports:
这里还没有一个明确的解决方案。只有一个容器或进程可以绑定到主机上的特定端口。您可以省略第一个端口号ports:
,Docker 会为你选择一个端口
ports:
- '80'
- '443'
但你需要手动查找对应主机端口号 https://docs.docker.com/compose/reference/port/
docker-compose port service1 80
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)