.Net8项目使用docker、docker-compose部署步骤

这里写自定义目录标题

一、新建ASP.NET Core Web应用,默认勾选启用容器支持


二、修改自动生成的Dockerfile文件

csharp 复制代码
# 使用 .NET 8.0 运行时镜像作为基础镜像
FROM mcr.microsoft.com/dotnet/aspnet:8.0 AS runtime
WORKDIR /app

# 设置时区(可选)
ENV TZ=Asia/Shanghai
RUN ln -fs /usr/share/zoneinfo/$TZ /etc/localtime && dpkg-reconfigure -f noninteractive tzdata

# 从当前文件夹复制文件到容器
COPY . .

# 设置可执行文件的权限
RUN chmod +x WebApplication1

ENTRYPOINT ["./WebApplication1"]

三、发布项目

项目右键-->发布

发布设置-->目标运行时选:linux-64,文件发布选项:生成单个文件


使用docker构建镜像、docker-compose启动容器

1.cmd(命令提示符) 切换目录到 项目发布文件夹

2.使用docker构建镜像

3.使用docker-compose启动容器

4.导出镜像,导入镜像

项目发布目录,新建docker-compose文件

删除:appsettings.Development.json、*.pdb等多余文件

volumes:可挂载文件、文件夹(物理地址文件与docker容器地址对应)

csharp 复制代码
services:
  WebApplication1:
    image: server/WebApplication1:1.0.0.0
    container_name: WebApplication1
    volumes:

     # #window path
- /C/Users/Desktop/test/WebApplication1/WebApplication1/bin/Release/net8.0/publish/appsettings.json:/WebApplication1/appsettings.json
     - /C/Users/Desktop/test/WebApplication1/WebApplication1/bin/Release/net8.0/publish/logs:/WebApplication1/logs
    restart: always
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "8088:8088"

cmd执行

csharp 复制代码
# 构建镜像时指定标签(server/WebApplication1:1.0.0.0要与上方docker-compose文件中image一致)
docker build -t server/WebApplication1:1.0.0.0 . 

# 后台启动容器
docker-compose up --detach

# 将镜像导出为.tar文件
docker save -o WebApplication1.tar WebApplication1

# 将文件压缩成.7z文件(如果挂载了appsettings.json文件,压缩时需要将.tar、appsettings.json、docker-compose三个一起压缩为WebApplication1.tar.7z)
#将.7z文件上传至服务器,切换到文件目录,解压缩
7z x WebApplication1.tar.7z

#在服务器上导入Docker镜像
docker load -i WebApplication1.tar

# 后台启动容器
docker-compose up --detach

# 停止容器
docker stop WebApplication1

#删除容器
docker rm WebApplication1
相关推荐
曲幽34 分钟前
别再用网页翻译看源码了!你的私人翻译神器LibreTranslate,部署避坑指南来了
python·docker·web·pot·translate·libretranslate·arogstranslate
唐青枫2 天前
别再乱用 StartNew:C#.NET TaskFactory 任务调度实战详解
c#·.net
武子康2 天前
调查研究-183 Apple container:Mac 上用轻量 VM 跑 Linux 容器,Swift 会改写本地容器体验吗?
docker·容器·apple
Alsn865 天前
等待学习-学习目录:Docker 容器安全攻防
学习·安全·docker
2601_962072555 天前
李梦娇常识4600问|题库|打印版
sql·华为od·华为·c#·华为云·.net·harmonyos
2601_961875245 天前
决战申论100题2026|最新|范文
linux·容器·centos·debian·ssh·fabric·vagrant
java_cj5 天前
深入kube-apiserver认证机制:从Bearer Token到mTLS的完整认证链解析
linux·运维·服务器·云原生·容器·kubernetes
程序员老赵5 天前
服务器没有桌面?Docker 跑个 Chrome,浏览器就能远程用
docker·容器·devops
杨浦老苏5 天前
轻量级Docker仪表板Servedash
运维·docker·监控·群晖·仪表板
正经教主5 天前
【docker基础】 第八周:容器监控与应用更新策略
运维·docker·容器