Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/docker/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
为什么docker compose up会删除其他正在运行的Conainter?_Docker_Docker Compose - Fatal编程技术网

为什么docker compose up会删除其他正在运行的Conainter?

为什么docker compose up会删除其他正在运行的Conainter?,docker,docker-compose,Docker,Docker Compose,我构建了一个docker映像,并使用docker compose up命令启动了一个容器。然后,我修改了容器并执行了docker commit命令。当我尝试用新创建的图像启动容器时,它会启动新容器,但会破坏旧容器。当我下次尝试启动旧容器时,它会破坏新容器并启动旧容器。我很困惑。docker/docker compose是否应该这样做 我正在运行的命令 docker-compose -f docker-compose.yml up -d docker compose文件($IMAGE\u NA

我构建了一个docker映像,并使用
docker compose up
命令启动了一个容器。然后,我修改了容器并执行了
docker commit
命令。当我尝试用新创建的图像启动容器时,它会启动新容器,但会破坏旧容器。当我下次尝试启动旧容器时,它会破坏新容器并启动旧容器。我很困惑。docker/docker compose是否应该这样做

我正在运行的命令

docker-compose -f docker-compose.yml up -d 
docker compose文件($IMAGE\u NAME和$CONTAINER\u NAME对于启动旧容器和新容器是不同的)

docker版本:

docker --version
Docker version 1.12.3, build 6b644ec
docker撰写版本:

docker-compose --version
docker-compose version 1.9.0, build 2585387

我的问题与此有关:

值得注意的是:

@这不是一个bug,与缓存无关

两个目录的名称相同(docker),因此 在同一目录下运行docker compose up 项目每次更新相同的配置时 服务(web)更改图像名称和容器名称

看起来你真正想要的是两个独立的应用程序,每个都有 它自己的形象和容器。在这种情况下,我建议做 以下:

重命名每个目录,使其不同,或者使用 --project name选项或COMPOSE_project_name环境变量为每个应用程序设置不同的项目名称。例如,myappdev和 myappprod。从两个合成文件中删除容器名称选项- 没必要。如果在两个目录中都运行docker compose, 现在应该有两个容器:myappdev_web和myappprod_web


tl;博士:把它们放在不同的目录里!
docker-compose --version
docker-compose version 1.9.0, build 2585387