ASP.NET Core 2.0 Docker部署

3

我有一个使用asp.net-core 2.0开发的应用程序,并使用Docker部署在Linux上。

因此,我创建了Docker镜像并在Linux服务器上运行它,如下所示:

docker run -p 80:80 --name my-container my-image:1.0

因此,从Docker镜像my-image:1.0创建了容器my-container

现在的问题是当我对我的应用程序进行一些更改并希望部署这些更改时,我必须停止/删除my-container并从新的Docker镜像中创建一个新的容器,例如:

docker stop my-container
docker rm my-container
docker run -p 80:80 --name my-container my-image:1.1

有没有办法只更新容器中的新图像?重点是使用现有容器与新版本的图像。

考虑到Docker镜像和容器的不可变性质,答案是否定的。 - R. Richards
1个回答

1

有没有办法只更新容器中的新图像?

没有。但这不是你需要的,因为你说你的目标是以下之一:

现在的问题是,当我对我的应用程序进行一些更改并希望部署这些更改时,我必须停止/删除my-container并从新的Docker镜像创建一个新的容器

您的Dockerfile看起来肯定是这样的:

FROM microsoft/aspnetcore
WORKDIR /app
COPY . .
ENTRYPOINT ["dotnet", "myapp.dll"]

因此,您只需要创建一个卷来将您的工作目录 /app 导出到容器外的主机文件系统中(使用 docker run-v 参数)。然后,在对应用程序进行更改后,只需重新启动容器即可。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接