我可以在不删除旧容器的情况下用docker-compose重新创建一个Docker容器吗?

时间:2019-11-30 20:22:10

标签: docker-compose

我正在开发Node Js应用程序,对于每个新发行版,我都想创建一个具有新映像的新Docker(映像名称在Docker Compose中作为变量传递),但不删除旧映像,就像我想做的那样版本控制?

我的Docker-Compose文件为


    version: '3' 
        services: 
                web:
                   build: . 
                   image: ${IMAGE_NAME} 
                   container_name: ${CONTAINER_NAME} 
                   ports: 
                        - ${PORT}:8447

我运行的命令是 docker-compose up -d ,但这将删除我的旧容器并启动一个新容器

1 个答案:

答案 0 :(得分:1)

拥有多个版本的容器并不理想,但是我们可以使用tag更新图像的版本。您可以使用版本号标记图像.compose将使用生成的名称来构建并标记它,并使用该图像然后创建容器。

因此,每当您有一个新版本时,您都将使用标记创建该版本的新映像,并使用该映像跟踪版本的版本。

下面是可以帮助您从Docker Compose标记映像的链接:

How to tag docker image with docker-compose

但是,如果要使用同一图像运行容器的多个实例,则可以使用scale

docker-compose up -d --scale <imageName>=5

您还可以在撰写文件本身内部使用“副本”来完成此操作。

deploy:
      mode: replicated
      replicas: 5

来源: https://docs.docker.com/compose/compose-file/#replicas