.NET 8 项目 Docker 方式部署到 Linux 系统详细操作步调

打印 上一主题 下一主题

主题 984|帖子 984|积分 2954

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
本文将详细介绍怎样将一个 .NET 8 项目通过 Docker 部署到 Linux 系统中。以下步调包罗从项目标创建、Dockerfile 的编写、镜像构建、到末了在 Linux 上的容器运行。
1. 环境预备

在开始之前,请确保你已经具备以下环境:


  • Linux 系统(如 Ubuntu、CentOS 等)
  • Docker 已经安装并精确运行
  • .NET 8 SDK 已安装(安装方法参考官网文档)
  • Git 工具用于拉取项目代码
1.1 安装 Docker (如果未安装)

对于 Ubuntu 系统,安装 Docker 的命令如下:
  1. sudo apt-get update
  2. sudo apt-get install apt-transport-https ca-certificates curl software-properties-common
  3. curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo gpg --dearmor -o /etc/apt/trusted.gpg.d/docker-archive-keyring.gpg
  4. sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
  5. sudo apt-get update
  6. sudo apt-get install docker-ce
复制代码
安装完成后,确保 Docker 服务已经启动:
  1. sudo systemctl enable docker
  2. sudo systemctl start docker
复制代码
检查 Docker 是否安装乐成:
  1. docker --version
复制代码
1.2 安装 .NET 8 SDK

请参考官方文档安装 .NET 8 SDK:安装 .NET 8 SDK
以 Ubuntu 为例,安装 .NET 8 SDK 的命令如下:
  1. wget https://download.visualstudio.microsoft.com/download/pr/14bbd1ca-6c19-47f5-b4ac-b0aef2b7f146/100b6d651d438574e6f9a78b2464a8da/dotnet-sdk-8.0.100-linux-x64.tar.gz
  2. sudo mkdir -p /usr/share/dotnet
  3. sudo tar zxf dotnet-sdk-8.0.100-linux-x64.tar.gz -C /usr/share/dotnet
复制代码
验证是否乐成安装:
  1. dotnet --version
复制代码
2. 创建 .NET 8 项目

起首,创建一个简朴的 .NET 8 Web API 项目。如果已经有项目,跳过此步调。
  1. dotnet new webapi -n MyApp
  2. cd MyApp
复制代码
你可以通过以下命令运行此项目,确保它可以正常工作:
  1. dotnet run
复制代码
如果你在浏览器中访问 http://localhost:5000,你应该能看到该 Web API 返回的默认相应。
3. 编写 Dockerfile

接下来,我们将为 .NET 项目编写一个 Dockerfile,使其可以通过 Docker 容器运行。
在项目根目录下,创建一个名为 Dockerfile 的文件,并添加以下内容:
  1. # 使用官方 .NET SDK 镜像作为构建环境
  2. FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build
  3. # 设置工作目录
  4. WORKDIR /src
  5. # 将项目文件复制到工作目录
  6. COPY ["MyApp/MyApp.csproj", "MyApp/"]
  7. # 恢复依赖
  8. RUN dotnet restore "MyApp/MyApp.csproj"
  9. # 复制所有项目文件到容器
  10. COPY . .
  11. # 构建项目
  12. WORKDIR "/src/MyApp"
  13. RUN dotnet build "MyApp.csproj" -c Release -o /app/build
  14. # 发布项目
  15. RUN dotnet publish "MyApp.csproj" -c Release -o /app/publish
  16. # 运行环境镜像
  17. FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final
  18. # 设置工作目录
  19. WORKDIR /app
  20. # 复制发布文件
  21. COPY --from=build /app/publish .
  22. # 设置容器启动命令
  23. ENTRYPOINT ["dotnet", "MyApp.dll"]
  24. # 暴露端口
  25. EXPOSE 80
复制代码
Dockerfile 阐明:


  • FROM mcr.microsoft.com/dotnet/sdk:8.0 AS build:使用 .NET SDK 镜像作为构建环境。
  • WORKDIR /src:设置工作目录为 /src,Docker 将文件复制到此目录。
  • COPY ["MyApp/MyApp.csproj", "MyApp/"]:复制 .csproj 文件。
  • RUN dotnet restore:规复依赖。
  • COPY . .:复制项目所有文件到容器。
  • RUN dotnet build:构建项目。
  • RUN dotnet publish:发布项目,天生可部署的文件。
  • FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS final:使用 .NET 运行时镜像作为生产环境镜像。
  • COPY --from=build /app/publish .:将构建好的文件从 build 阶段复制到生产环境镜像中。
  • ENTRYPOINT ["dotnet", "MyApp.dll"]:设置容器启动时的命令,运行 MyApp.dll。
  • EXPOSE 80:暴露容器的 80 端口,方便外部访问。
4. 构建 Docker 镜像

在项目标根目录下,通过以下命令构建 Docker 镜像:
  1. docker build -t myapp:1.0 .
复制代码
命令分析:


  • -t myapp:1.0:为镜像指定标签 myapp:1.0。
  • .:表现当前目录(Dockerfile 文件地点目录)作为上下文。
构建完成后,可以通过以下命令查看已构建的镜像:
  1. docker images
复制代码
你应该能够看到 myapp 镜像列在其中。
5. 运行 Docker 容器

使用以下命令启动容器:
  1. docker run -d -p 80:80 --name myapp myapp:1.0
复制代码
命令分析:


  • -d:表现后台运行容器。
  • -p 80:80:将容器的 80 端口映射到主机的 80 端口。
  • --name myapp:为容器指定名称为 myapp。
  • myapp:1.0:指定要运行的镜像名称和标签。
运行容器后,你可以在浏览器中访问 http://<your-server-ip>,你应该能看到应用程序的输出。
6. 检查容器状态

可以使用以下命令查看正在运行的容器:
  1. docker ps
复制代码
这将显示当前所有运行的容器信息。
7. 停止和删除容器

停止容器:
  1. docker stop myapp
复制代码
删除容器:
  1. docker rm myapp
复制代码
8. 其他操作

8.1 查看容器日志

你可以查看容器的日志,方便调试和监控:
  1. docker logs myapp
复制代码
8.2 进入容器进行调试

你可以使用 docker exec 命令进入容器并进行调试:
  1. docker exec -it myapp /bin/bash
复制代码
这将让你进入容器的 Bash 环境,可以在其中实行命令。
9. 总结

本文详细介绍了怎样将一个 .NET 8 项目通过 Docker 部署到 Linux 系统中。操作步调包罗:


  • 安装 Docker 和 .NET SDK。
  • 创建 .NET 8 项目并编写 Dockerfile。
  • 构建 Docker 镜像并运行容器。
Docker 为 .NET 项目标部署提供了很好的办理方案,能使得应用在差异平台上快速启动并保持同等性。希望通过本文的学习,能够帮助你顺遂将 .NET 8 项目部署到 Linux 系统中,并在 Docker 容器中高效运行。

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

祗疼妳一个

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表