首页 > 编程语言 >在 Docker 容器中运行 ASP.NET Core 应用

在 Docker 容器中运行 ASP.NET Core 应用

时间:2024-03-19 14:48:27浏览次数:19  
标签:Core HECore ASP serilogwebapi hecore dotnet Docker SerilogWebApi docker

创建Docker支持生成Dockerfile文件

在解决方案asp.net core项目下右键添加Dockerfile支持、选择目标OS为Linux,生成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

FROM mcr.microsoft.com/dotnet/sdk:6.0 AS build
WORKDIR /src
COPY ["Log-Frame/HECore.SerilogWebApi/HECore.SerilogWebApi.csproj", "Log-Frame/HECore.SerilogWebApi/"]
RUN dotnet restore "Log-Frame/HECore.SerilogWebApi/HECore.SerilogWebApi.csproj"
COPY . .
WORKDIR "/src/Log-Frame/HECore.SerilogWebApi"
RUN dotnet build "HECore.SerilogWebApi.csproj" -c Release -o /app/build

FROM build AS publish
RUN dotnet publish "HECore.SerilogWebApi.csproj" -c Release -o /app/publish /p:UseAppHost=false

FROM base AS final
WORKDIR /app
COPY --from=publish /app/publish .
ENTRYPOINT ["dotnet", "HECore.SerilogWebApi.dll"]

在 Linux 容器或 Windows 容器中运行

# 停止容器
docker stop hecore.serilogwebapi
# 删除容器
docker rm hecore.serilogwebapi
# 删除镜像
docker rmi hecore.serilogwebapi:latest
# 重要:进入解决方案根目录(注:.sln 文件所在的目录)
# 构建hecore.serilogwebapi:latest镜像
docker build -f ./Log-Frame/HECore.SerilogWebApi/Dockerfile -t hecore.serilogwebapi:latest .
# 运行hecore.serilogwebapi容器,设置环境变量为:Development
docker run --name hecore.serilogwebapi -d --restart=always -e "ASPNETCORE_ENVIRONMENT=Development" -p 5151:80 hecore.serilogwebapi:latest
# 删除所有悬空镜像,不删除未使用镜像
docker rmi $(docker images -f "dangling=true" -q)
# 查看日志
docker logs hecore.serilogwebapi

标签:Core,HECore,ASP,serilogwebapi,hecore,dotnet,Docker,SerilogWebApi,docker
From: https://www.cnblogs.com/heyangyi/p/18082774

相关文章

  • Ubuntu安装指定版本的docker
    Ubuntu安装指定版本的docker1、删除docker相关组件sudoapt-getautoremovedockerdocker-cedocker-enginedocker.iocontainerdrunc2、更新apt-getsudoapt-getupdate3、安装apt依赖包,用于通过HTTPS来获取仓库sudoapt-getinstallapt-transport-httpsca-cert......
  • .Net Core微服务 - Seq 日志聚合
    Seq简介Seq是一款使用现代化技术构建的结构化日志存储,查询,分析工具。比起ELK这种组合要轻量级许多。只需要一个安装包就具有数据存储,查询,图表分析功能。它对windows友好,直接提供了安装包。当然也可以使用docker来部署。Seq对于单个用户是免费的,这对于一些小团队并没有什......
  • .Net Core微服务 - Serilog+Seq记录日志
    Serilog介绍Serilog是用于.NET应用程序的诊断日志记录库。它易于设置,具有干净的API,并且可以在所有最新的.NET平台上运行。Serilog通过NuGet分发,项目包括一个Seirlog核心项目Seirlog和很多接收器sinks(超过100个),这些接收是通过插件的方式来实现将日志写入到各种终端、文件......
  • 轻量化部署工具Docker:参数化启动容器与数据卷挂载的综合应用
    dockerrun中的常见参数以mysql安装为例子dockerrun-d\--namemysql\-p3306:3306\-eTZ=Asia/Shanghai\-eMYSQL_ROOT_PASSWORD=123456\mysql-d表示后台执行–name容器的名字-p宿主机和容器映射的端口-e环境变量的设置此处设置了时区和密码......
  • 云服务器中docker部署nodejs项目
    1、部署项目前准备准备好了一台Linux云服务器或Ubuntu云服务器电脑安装好了xshell、xftp这两款软件已经开发完成了nodejs的项目2、Dockerfile文件的编写 在node项目中新建一个Dockerfile文件FROMdocker.io/node#在镜像容器中创建目录RUNmkdir-p/home/mbill......
  • # Docker安装使用Redis
    拉取最新版本redisdockerpullredis:7.2.4查看镜像dockerimages新建本地挂载配置文件夹(位置随意)1、创建文件夹(位置随意):data、confredis默认配置只能够本地连接、不能进行远程访问需要手动挂载redis配置文件mkdir-p/docker-root/redis_6379/datamkdir-p/d......
  • 从零开始写 Docker(七)---实现 mydocker commit 打包容器成镜像
    本文为从零开始写Docker系列第七篇,实现类似dockercommit的功能,把运行状态的容器存储成镜像保存下来。完整代码见:https://github.com/lixd/mydocker欢迎Star推荐阅读以下文章对docker基本实现有一个大致认识:核心原理:深入理解Docker核心原理:Namespace、Cgroups......
  • 【Docker】wordpress 容器化部署
    WordPress标准软件基于Bitnamiwordpress构建。当前版本为6.4.3你可以通过轻云UC部署工具直接安装部署,也可以手动按如下文档操作,该项目已经全面开源,可以从如下环境获取配置文件地址:https://gitee.com/qingplus/qingcloud-platformqinghub自动安装部署配置库什么是Wo......
  • webapi通过docker部署到Linux的两种方式
    docker安装官网删除dockersudoyumremovedocker\docker-client\docker-client-latest\docker-common\docker-latest\docker-latest-logrotate\docker-logrotate\docker-engine安装sudoyuminstall-yyum-utilssudoyum-config-manage......
  • [nginx] 基于docker安装nginx
    0序环境信息OS:CENTOS7.9Docker:25.0.4Nginx:1.24.01安装步骤Step0安装docker略。可参见:[Docker]基于CENTOS7安装Docker环境-博客园/千千寰宇基于Docker安装MYSQL/Step1安装docker环境-博客园/千千寰宇Step1下载nginx镜像下载nginx镜......