Skip to content

门泊吴船亦已谋

Docker 部署 .NET Core 3.0 控制台项目

本文将光速创建一个 HelloWorld,然后使用 Docker 进行部署

新建并发布.NET Core 控制台项目

首先新建一个.NET Core 控制台项目,并直接运行
控制台应该会输出“Hello World!”,如果没有可以自己写一个。

$ dotnet new console --name hello
$ cd hello
$ dotnet run

解释:
dotnet new 用于创建新项目,console 表示是控制台项目,--name 指定项目名称为 hello 并在当前路径下创建 hello 文件夹,而项目在其中。

于是直接发布

$ dotnet publish -c Release

解释:该命令会把项目发布到 hello 文件夹中的 bin/Release/netcoreapp3.0/publish 里

然后在 hello 目录下编写 Dockerfile 文件用于生成镜像
Dockerfile

FROM mcr.microsoft.com/dotnet/core/runtime
COPY bin/Release/netcoreapp3.0/publish/ /publish
WORKDIR /publish
ENTRYPOINT ["dotnet", "hello.dll"]

解释:
FROM
表示我们的镜像基于 dotnet core runtime

COPY
用于拷贝我们打包好的应用,这里第一个参数的路径应该替换为应用的发布路径

WORKDIR
用于切换当前工作路径

ENTRYPOINT
运行应用

接下来利用这个 Dockerfile 构建镜像

$ docker build -t dotnet-hello .

解释:dotnet-hello 是镜像的名称

最后利用该镜像构建容器并运行

$ docker run -t --name hello dotnet-hello

解释:
-t 表示虚拟终端,用于在 Docker 命令行工具中输出应用的控制台输出。但一般项目中不需要
--name hello 表示容器名为 hello

最后看到终端输出“Hello World!”