启动Docker Production Compose时Staging容器意外停止的问题
问题原因
Docker Compose默认以当前目录名称作为项目名称,你的两个配置文件中定义了相同的服务名称(如django、postgres、redis等)。当你启动第二个配置文件时,Docker Compose会将其视为对同一项目下对应服务的更新操作,因此会自动停止旧的staging容器,替换为新的production容器。
解决方法
启动两个环境时,通过-p参数指定不同的项目名称,让它们成为互相独立的Docker Compose项目:
- 启动Staging环境:
docker-compose -p staging -f staging.yml up -d
- 启动Production环境:
docker-compose -p production -f production.yml up -d
之后两个环境的容器会独立运行,不会再出现互相停止的情况。你可以通过以下命令分别查看两个环境的容器状态:
- 查看Staging容器:
docker-compose -p staging ps - 查看Production容器:
docker-compose -p production ps
内容的提问来源于stack exchange,提问作者mirodil
相关产品推荐
相关产品推荐

