服务部署:.NET项目使用Docker构建镜像与部署

前提条件

        安装Docker:确保你的Linux系统上已经安装了Docker。如果没有,请参考官方文档进行安装。

步骤一:准备项目文件

  1. 将你的.NET项目从Windows系统复制到Linux系统。你可以使用Git、SCP等工具来完成这个操作。
  2. 如何是使用virtualbox虚拟电脑控制台,可以使用文件管理器使用项目上传:账号密码为ubuntu的登录账号密码

步骤二:创建Dockerfile

在你的.NET项目根目录下创建一个名为Dockerfile的文件,内容如下:

#See https://aka.ms/customizecontainer to learn how to customize your debug container and how Visual Studio uses this Dockerfile to build your images for faster debugging.



FROM mcr.microsoft.com/dotnet/aspnet:6.0 AS base

WORKDIR /app

EXPOSE 80

EXPOSE 443



FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build

ARG BUILD_CONFIGURATION=Release

WORKDIR /src

COPY ["WebApplication1.csproj", "."]

RUN dotnet restore "./././WebApplication1.csproj"

COPY . .

WORKDIR "/src/."

RUN dotnet build "./WebApplication1.csproj" -c $BUILD_CONFIGURATION -o /app/build



FROM build AS publish

ARG BUILD_CONFIGURATION=Release

RUN dotnet publish "./WebApplication1.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=false



FROM base AS final

WORKDIR /app

COPY --from=publish /app/publish .

ENTRYPOINT ["dotnet", "WebApplication1.dll"]

步骤三:构建Docker镜像

在终端中导航到你的项目目录,然后运行以下命令来构建Docker镜像:

docker build -t webapplication1 .
  • docker build: Docker 命令,用于构建镜像。
  • -t webapplication1: 为生成的镜像指定一个标签(名称),这里使用小写字母。
  • .: 指定 Dockerfile 所在的路径,这里使用 . 表示当前目录。

步骤四:运行Docker容器

使用以下命令来运行Docker容器:

docker run -d -p 5000:80--name webapplication1ontainer webapplication1

这将会在后台运行你的容器,并将主机的5000端口映射到容器的80端口。

  • docker run: Docker 命令,用于运行一个新的容器。
  • -d: 表示在后台运行容器(detached 模式)。
  • -p 5000:80: 将主机的 5000 端口映射到容器的 80 端口。
  • --name webapplication1container: 为容器指定一个名称。
  • webapplication1: 之前构建的镜像名称。

步骤五:验证部署

打开浏览器并访问http://localhost:5000,你应该能够看到你的.NET应用程序正在运行。

步骤六:其他事项

  • 多阶段构建:上述Dockerfile使用了多阶段构建,以减少最终镜像的大小。
  • 环境变量:如果你的应用需要配置环境变量,可以使用-e参数传递,例如
docker run -d -p 5000:80-e "ASPNETCORE_ENVIRONMENT=Production" --name webapplication1ontainer webapplication1
  • 日志查看:如果需要查看容器的日志,可以使用以下命令:

    docker logs webapplication1_container
  • 停止容器:如果需要停止运行的容器,可以使用以下命令:

    docker stop webapplication1_container
  • 删除容器:如果需要删除已经停止的容器,可以使用以下命令:

    docker rm webapplication1_container

相关推荐

  1. docker部署服务项目

    2024-06-10 14:32:03       5 阅读
  2. Docker 使用DockerFile构建Nodejs服务镜像

    2024-06-10 14:32:03       31 阅读

最近更新

  1. 探索机器学习:深入理解Sklearn基础

    2024-06-10 14:32:03       0 阅读
  2. vue3delete请求报403forbidden,前后端解决方式

    2024-06-10 14:32:03       0 阅读
  3. Vue小记——如何理解 $nextTick( ) ?

    2024-06-10 14:32:03       0 阅读
  4. IDM(Internet Download Manager)简介

    2024-06-10 14:32:03       0 阅读
  5. 深度神经网络是什么?

    2024-06-10 14:32:03       0 阅读
  6. 设计模式-组合模式Composite(结构型)

    2024-06-10 14:32:03       0 阅读
  7. 使用 Python进行自动备份文件

    2024-06-10 14:32:03       0 阅读
  8. React <> </>的用法

    2024-06-10 14:32:03       0 阅读

热门阅读

  1. web前端报名点:深入探索与报名流程指南

    2024-06-10 14:32:03       4 阅读
  2. 深拷贝&浅拷贝解析,从原理理解深拷贝

    2024-06-10 14:32:03       4 阅读
  3. 不要使用业务键作为数据库主键

    2024-06-10 14:32:03       5 阅读
  4. 爬山算法的详细介绍

    2024-06-10 14:32:03       3 阅读
  5. SSRF 漏洞实践:端口扫描与任意文件读取

    2024-06-10 14:32:03       3 阅读
  6. SpringBoot实现上传头像(查看头像)

    2024-06-10 14:32:03       4 阅读
  7. 模拟CAS算法案例

    2024-06-10 14:32:03       3 阅读
  8. DeepSpeed Autotuning

    2024-06-10 14:32:03       2 阅读
  9. 10-Eureka-服务注册

    2024-06-10 14:32:03       3 阅读
  10. 在docker容器中使用gdb调试python3.11的进程

    2024-06-10 14:32:03       3 阅读