asp.net-核心 2.0 Docker 部署

asp.net-core 2.0 Docker deploy

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

所以我创建了 Docker 图像并在 Linux 服务器上 运行 像:

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

所以从 Docker 图像 my-image:1.0 创建容器 my-container

现在的问题是,当我对我的应用程序进行一些更改并想要部署这些更改时,我必须 stop/remove my-container 并从新的 Docker 图像创建一个新图像,例如:

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

有什么方法可以只用新图像更新容器吗?重点是将现有容器与新版本的图像一起使用。

Is there any way to just update the container with the new image?

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

Now the issue is when I make some changes to my app and want to deploy that changes I have to stop/remove my-container and create a new one from new Docker image

你的 Dockerfile 肯定是这样的:

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

因此,您只需要创建一个卷以将您的工作目录 /app 导出到容器外部的主机文件系统(使用 -v 参数和 docker run)。然后在对您的应用应用更改后简单地重新启动容器。