当前位置: 首页 > news >正文

服务部署:.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 baseWORKDIR /appEXPOSE 80EXPOSE 443FROM mcr.microsoft.com/dotnet/sdk:6.0 AS buildARG BUILD_CONFIGURATION=ReleaseWORKDIR /srcCOPY ["WebApplication1.csproj", "."]RUN dotnet restore "./././WebApplication1.csproj"COPY . .WORKDIR "/src/."RUN dotnet build "./WebApplication1.csproj" -c $BUILD_CONFIGURATION -o /app/buildFROM build AS publishARG BUILD_CONFIGURATION=ReleaseRUN dotnet publish "./WebApplication1.csproj" -c $BUILD_CONFIGURATION -o /app/publish /p:UseAppHost=falseFROM base AS finalWORKDIR /appCOPY --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

http://www.lryc.cn/news/373290.html

相关文章:

  • 力扣1170.比较字符串最小字母出现频次
  • boost asio异步服务器(3)增加发送队列实现全双工通信
  • 49.Chome浏览器有三种清缓存方式
  • Python爬取与可视化-豆瓣电影数据
  • 【背包题】oj题库
  • Web前端弱势因素:深入探讨与挑战解析
  • 元素在超出当前界面的下拉列表中如何定位
  • Vscode中使用make命令
  • 配置完eslint没有用?
  • [Nacos]No spring.config.import property has been defined
  • 【操作与配置】Pytorch环境搭建
  • 判断QT程序是否重复运行
  • 利用Axios封装及泛型实现定制化HTTP请求处理
  • RN6752V1 高性能AHD转MIPIDVPBT656BT601芯片方案,目前适用于车载方案居多
  • Rust 基金会的商标政策更新引发社区争议
  • Java Opencv识别图片上的虫子
  • 微型操作系统内核源码详解系列五(1):arm cortex m3架构
  • 值传递和址传递
  • 【three.js】自定义物体形状BufferGeometry
  • Mac 使用 Homebrew 安装 Python3
  • 汽车行驶中是怎么保障轴瓦安全的?
  • 洗地机哪款好?洗地机十大名牌排行榜
  • spark mllib 特征学习笔记 (二)
  • 湘潭大学软件工程数据库2(题型,复习资源和计划)
  • 第二十三节:带你梳理Vue2:Vue插槽的认识和基本使用
  • 父亲节马上到了-和我一起用Python写父亲节的祝福吧
  • winform 应用程序 添加 wpf控件后影响窗体DPI改变
  • Web前端开发素材:探索、选择与应用的艺术
  • LeetCode | 20.有效的括号
  • ceph scrub 错误记录