我正在开发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 ,但这将删除我的旧容器并启动一个新容器。
答案 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