Docker + .NET API:简化部署和扩展

        多年来,Docker 容器彻底改变了开发人员创建、共享和运行应用程序的方式。凭借其灵活的设计,Docker 容器确保了跨各种平台的环境,从而简化了可靠部署应用程序的过程。与 .NET 集成后,开发人员可以利用 Dockers 功能来简化 .NET 应用程序的开发和部署阶段。本文深入探讨了将 Docker 容器与 .NET 应用程序配合使用的优点,并提供了入门指南。

98fc7227eb40918857c9dfb589b8a040.png图片由Docker提供

为什么选择 Docker for .NET?

1. 一致的开发环境

        Docker 容器封装了运行应用程序的所有依赖项和配置,从而保证了开发、测试和生产环境之间的一致性。通过利用 Docker,开发人员可以避免“它适用于我的机器”问题的典型陈述,因为他们可以创建跨各种开发团队和设备完美运行的环境。

2. 简化的依赖关系管理

        Docker 消除了在开发人员计算机上手动安装和管理依赖项的需要。通过在 Docker 文件中指定依赖项,开发人员可以毫不费力地将其 .NET 应用程序与库和依赖项捆绑在一起,从而减少设置时间并最大限度地减少兼容性问题。

3. 可扩展性和资源效率

        由于其性质和容器化技术,Docker 非常适合水平或垂直扩展 .NET 应用程序。开发人员能够使用 Docker Swarm 或 Kubernetes 轻松设置其应用程序的实例,这有助于优化资源使用并提高应用程序性能。

4. 简化部署流程

        Docker 简化了 .NET 应用程序的部署。开发人员能够将其应用程序包装到 Docker 映像中。这些可以部署到任何与 Docker 兼容的环境,包括本地服务器、AWS 或 Azure 等云平台,甚至 IOT 设备。这不仅简化了部署过程,还加快了 .NET 应用程序的发布周期

从 Docker 和 .NET 开始

步骤 1:安装 Docker

        通过导航到 Docker 桌面,安装 Docker 很容易。Docker 桌面适用于 Windows、Mac 和 Linux。我已经下载并安装了适用于 Windows 的它。安装后,Docker (whale) 图标将显示在系统侧托盘上,如下所示。当您单击该图标时,它将打开 Docker 桌面仪表板,如下所示。您可以查看容器、映像、卷、内部版本和扩展的列表。在下图中,它显示了我在本地计算机上创建的容器列表。

e6db214cd5c7fd0fff8be63ff709dbbb.png

896d5df641a70206c2c2c1e7dd45dc53.png

步骤 2:创建 .NET 应用程序

        使用所选工具(如 Visual Studio、Visual Studio Code 或 the.NET CLI)创建 .NET 应用程序。例如,您可以直接从命令行使用以下命令。

PowerShell的

dotnet new web -n MinimalApiDemo

步骤 3:使用 Docker 设置应用程序

        在 .NET 项目的根文件夹中创建一个 Dockerfile,以指定应用程序的 Docker 映像。下面是在上一步中创建的 ASP.NET Core 应用程序的 Dockerfile 示例。

Dockerfile

# Use the official ASP.NET Core runtime as a base image
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS base
WORKDIR /app
EXPOSE 8080

# Use the official SDK image to build the application
FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
WORKDIR /src
COPY ["MinimalApiDemo.csproj", "./"]
RUN dotnet restore "MinimalApiDemo.csproj"
COPY . .
WORKDIR "/src/"
RUN dotnet build "MinimalApiDemo.csproj" -c Release -o /app/build

# Publish the application
FROM build AS publish
RUN dotnet publish "MinimalApiDemo.csproj" -c Release -o /app/publish

# Final image with only the published application
FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "MinimalApiDemo.dll"]

步骤 4:创建并启动 Docker 映像

        通过从终端窗口执行命令(使用小写字母)来创建 Docker 映像。

PowerShell的

docker build -t minimalapidemo .

00cefff96f0a4a162a84457934c09dc4.png

    完成构造过程后,即可通过在容器中运行 Docker 映像来启动它。运行以下 docker 命令以启动新容器。

PowerShell的

docker run -d -p 8080:8080 --name myminimalapidemo minimalapidemo

        您的 API 服务当前在 Docker 容器中运行,可以通过此 localhost 访问,如下所示。

4dd9834ddb9c096c2c56ced0e78f772b.png

a7c95e640a88fb3b28da612815695542.png

请参阅我之前的文章,了解我如何使用具有不同 HTTP 端点的最小 API 创建产品控制器。

下面是一些建议的 .NET 应用程序 docker 化策略

1.减小图像尺寸

        通过利用阶段构建、消除依赖关系并最小化 Docker 文件中的层来提高 Docker 映像的效率。

2.利用.dockerignore文件

        生成一个 .dockerignore 文件,以排除文件和目录传输到 Docker 镜像中,从而减小镜像大小并提高构建速度。

3. 确保容器安全

        在Docker容器创建和运行过程中,请遵循安全措施,包括更新基础镜像、进行漏洞扫描和限制容器权限。

4. 将 Docker Compose 用于多容器应用程序

        对于具有服务或依赖项的应用程序,利用 Docker Compose 定义和管理多容器应用程序,从而简化开发和部署过程。

5. 监控容器并排除故障

        使用 Docker 自己的监控工具或第三方解决方案监控 Docker 容器的性能和运行状况。利用 Docker 日志和调试实用程序等工具及时解决问题并提高容器的效率

        Docker 容器为 .NET 应用程序的开发、打包和部署提供了一个高效的平台。通过容器化这些应用程序,开发人员可以创建开发环境、简化依赖项管理并简化部署过程。无论重点是微服务、Web 应用还是 API,Docker 都提供了一种在各种环境中操作 .NET 应用程序的熟练方法。通过遵循最佳实践并最大限度地发挥 Docker 的功能,开发人员可以充分利用容器化的优势,从而加快构建和部署 .NET 应用程序的过程

  • 13
    点赞
  • 31
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

晨曦_子画

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值