docker-compose改配置后启动为何重建容器而非创建新实例?
问题成因
Docker Compose 默认通过「项目名」对关联的容器、网络、卷等资源做分组识别,默认项目名取执行命令所在文件夹的名称,所有同项目资源都会加{项目名}_前缀做唯一标识。
你复制项目文件夹后没有修改文件夹本身的名称,导致Docker Compose将两个目录下的配置判定为同一个项目的配置,执行docker-compose up --build时只会更新已有项目的容器,不会生成新的独立实例。
解决方案
- 重命名复制后的项目文件夹,保证和原项目文件夹名称不同,再执行启动命令即可。
- 也可以在启动时显式指定项目名,加
-p参数,测试环境可执行命令:docker-compose -p app-test up --build,此时会直接用你指定的名称作为项目前缀生成独立资源,不受文件夹名影响。 - 注意检查不同配置的
container_name、宿主机映射端口不可重复,否则会出现启动冲突。
内容的提问来源于stack exchange,提问作者redOctober13
相关产品推荐
相关产品推荐

