我构建了一个码头映像,并使用docker-compose up命令启动了一个容器。然后我修改了容器并执行了一个docker commit命令。当我尝试用新创建的映像启动容器时,它会启动新容器,但破坏旧容器。当我下一次尝试引导旧容器时,它会破坏新容器并启动旧容器。我很困惑。码头工/码头工应该这么做吗?
我正在运行的命令
docker-compose -f docker-compose.yml up -d 坞-组合文件($IMAGE_NAME和$CONTAINER_NAME用于启动旧容器和新容器都是不同的)
version: '2'
services:
yolo:
build:
context: .
dockerfile: Dockerfile
image: $IMAGE_NAME
container_name: $CONTAINER_NAME
ports:
- "$EXTERNAL_SSH_PORT:22"码头版本:
docker --version
Docker version 1.12.3, build 6b644ec船坞-撰写版本:
docker-compose --version
docker-compose version 1.9.0, build 2585387发布于 2017-04-26 00:52:42
我的问题与此有关:
https://github.com/docker/compose/issues/3472
值得注意的是:
@kachkaev --这不是一个bug,与缓存无关。 您的两个目录都被命名为相同的东西(docker),所以当您在任意一个目录中运行docker时,您正在处理的是同一个项目。每次更新相同服务(web)的配置,以同时更改图像名称和容器名称。 看起来你真正想要的是两个独立的应用程序,每个应用程序都有自己的图像和容器。在这种情况下,我建议做以下工作: 要么重命名每个目录,使它们不同,要么使用--项目名称选项或COMPOSE_PROJECT_NAME环境变量为每个应用程序设置不同的项目名称。例如,myappdev和myappprod。从两个组合文件中删除container_name选项--这是不必要的。如果在这两个目录中运行docker-组合,那么现在应该有两个容器: myappdev_web和myappprod_web。
https://stackoverflow.com/questions/43622783
复制相似问题