使用 Visual Studio .NET Core 为简单的 Web 应用程序和托管创建 Docker 映像
介绍
为 .NET Core Web 应用程序创建一个简单的 docker 映像并将其运行到本地计算机以及 Azure 容器服务中。
在阅读本文之前,请先阅读有关 docker 和相关领域的其他文章以了解基本概念。
语言前的
你需要在你的机器上安装 docker for windows 和 .Net Core SDK:
- https://docs.docker.com/docker-for-windows/install/
- https://dotnet.microsoft.com/download/dotnet-core/2.2
第1步
打开 Visual Studio 2019 并创建一个新项目。
第2步
选择 ASP.Net Core Web 应用程序 –> 单击下一步 –> 提供项目名称。
第 3 步
单击创建,然后选择 .Net Core 作为框架并选择 .Net Core 2.2 。接下来,在左侧面板中选择 Web 应用程序。在右侧面板中,选择启用Docker支持并确保选择了 windows 选项。此docker 镜像是特定于 Windows 的。
注意
如果您在创建应用程序时错过了为 Windows 支持选择 docker,请不要担心,您还有另一个选择。右键单击解决方案资源管理器中的项目,然后选择添加 –> 在那里您可以看到 docker 支持。
第四步
创建示例项目后,您可以在已创建项目的解决方案资源管理器中访问 DockerFile。在那里您可以找到一些命令,这些命令说明了创建此应用程序的图像要遵循的步骤。您还可以在项目解决方案资源管理器中看到 .dockerignore 文件。它就像一个 git ignore 文件,在创建 docker 镜像时忽略一些文件。
例如:
# Get base sdk from microsoft
#Copy the CSPROJ and any dependencies via nuget
//FROM mcr.microsoft.com/dotnet/core/aspnet:2.2-nanoserver-1809 AS base
//WORKDIR /app
//EXPOSE 80 ---> For Port mapping with container.
#Copy our project files and build our release
//FROM mcr.microsoft.com/dotnet/core/sdk:2.2-nanoserver-1809 AS build
//WORKDIR /src
//COPY ["dockerdemowebapp/dockerdemowebapp.csproj", "dockerdemowebapp/"]
//RUN dotnet restore "dockerdemowebapp/dockerdemowebapp.csproj"
//COPY . .
//WORKDIR "/src/dockerdemowebapp"
//RUN dotnet build "dockerdemowebapp.csproj" -c Release -o /app
//FROM build AS publish
//RUN dotnet publish "dockerdemowebapp.csproj" -c Release -o /app
//FROM base AS final
//WORKDIR /app
//COPY --from=publish /app .
//ENTRYPOINT ["dotnet", "dockerdemowebapp.dll"
第 5 步
最后,我们的应用程序包含以下文件。
第 6 步
让我们从创建 docker 映像开始,以便在项目文件位置执行打开命令提示符。这意味着以下文件夹位置:
第 7 步
在打开的命令提示符下输入以下命令来创建镜像。docker build -t dockerhubid/projectname: latest 。
命令:docker build -t dockerhubid/projectname: latest。
所以在我们的例子中,命令就像 docker build -t dockerhubid/dockerdemowebapp 。
-t –> 表示使用以下名称标记此镜像。
dockerhubid –> https://hub.docker.com/ // 这里可以创建docker hubid。
dockerhubid/dockerdemowebapp –> 您可以在该位置提供任何名称,但是当您尝试将此 docker 容器托管到 Azure 或任何其他云服务时,意味着您应该将此 docker 容器映像移动到 docker hub 中,然后只有您可以部署。
通过项目名称,它表示我们给出的全名。
最后我们有 . (点)符号,这对空格很重要。我们必须遵循docker原则。
第 8 步
当您按 Enter 键时,它会尝试读取 docker 文件并执行我们编写的命令。让我们看看!!
步骤 9
哎呀,出了点问题,这是因为 docker 文件不在正确的位置。打开文件资源管理器并导航到项目位置。将 dockerfile 向后移动一步,这意味着将 docker 文件移动到解决方案文件位置并在该位置打开命令提示符。如下图所示。
第 10 步
现在输入 build 命令并等待执行 docker file 命令(这意味着依赖项和所有其他相关的)。命令成功后,您可以看到成功窗口。
第 11 步
成功创建 docker 镜像后,您可以输入以下命令查看镜像。
命令:docker images
在那里您可以看到您最近创建的图像。
第 12 步
所以,我们已经创建了 docker 镜像。现在我们需要在本地运行这个镜像。为此,我们需要一个容器来运行此映像。这个过程可以通过运行以下命令来实现。
命令:docker run -p 9090:80 dockerhubid/projectname
-p –> 表示端口映射。
9090 –> 这是我们运行应用程序的随机端口号(我们可以提供自己的)。
80 –> 这个是我们在创建镜像时暴露了80端口。因此,我们必须将端口号与我们现在创建的容器进行映射。
所以让我们通过在我们的例子中运行命令来看看。
第 13 步
成功,现在我们的应用程序在此 URL 中作为 docker 镜像运行。
http://localhost:9090/
第 14 步
就是这样 !!!我们已经创建了一个 docker 镜像并在我们的本地机器上运行它。
现在我们需要将它部署到 Azure 中。为此,我们需要一个分布式环境中的 docker 镜像。这是我们可以轻松地将 docker 镜像从那里部署到 azure 容器服务中。
所以我们可以将我们的 docker 镜像移动到 dockerhub 存储库中。为此,请执行以下命令。
命令: docker push dockerhubid/projectname
当你在我们的命令提示符中运行这个命令时,它看起来像下面这样:
将 docker 映像推送到 docker hub 后,您可以访问 docker hub 登录并查看您的存储库,如下所示。
第 15 步
部署到 Azure 服务:
- 需要 Azure 门户订阅。
- 需要创建一个 Azure 容器实例。
第 16 步
- 在新选项卡中打开https://portal.azure.com并输入您的凭据。
- 然后导航以添加资源部分 –> 键入“容器实例”。
- 创建一个新的容器实例资源,如下所示:
镜像名称:dockerhubid/项目名称。基于此 docker hub id,它将获取并获取映像并进行部署。
第 17 步
在 Azure 容器服务网络选项卡中,您需要提供一些 DNS 名称来运行我们的应用程序。
就是这样,现在您可以查看 + 创建。它将在 azure 容器服务中部署我们的应用程序。
因此,一旦部署成功,请转到资源并在浏览器选项卡中选择 DNS 名称和选项卡。
就是这样,我们的应用程序在 azure 服务中运行。我希望这对你有帮助。
Docker 中的一些命令
常见问题FAQ
- 程序仅供学习研究,请勿用于非法用途,不得违反国家法律,否则后果自负,一切法律责任与本站无关。
- 请仔细阅读以上条款再购买,拍下即代表同意条款并遵守约定,谢谢大家支持理解!