本文将光速创建一个 Hello World,然后使用 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 文件用于生成镜像:

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

解释:

  • FROM

    表示我们的镜像基于 mcr.microsoft.com/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!