.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
相关推荐
晓柏8 分钟前
OpenEuler 系统安装 docker 和 nvidia-docker
docker
FreeBuf_29 分钟前
新型恶意软件采用独特混淆技术劫持Docker镜像
运维·docker·容器
李菠菜3 小时前
CentOS系统指定版本Docker与Docker-Compose在线安装教程
docker·容器·centos
包达叔3 小时前
dockercompose文件仓库
docker
爱吃龙利鱼4 小时前
rocky9.4部署k8s群集v1.28.2版本(containerd)(纯命令)
云原生·容器·kubernetes
李菠菜7 小时前
Kubernetes上通过Helm部署高可用Redis集群
docker·容器·kubernetes
李菠菜7 小时前
修改KubeSphere外网访问端口
docker·容器·kubernetes
福大大架构师每日一题7 小时前
docker v28.1.1 正式发布!修复关键Bug,网络与安全性再升级
网络·docker·bug
一个小坑货8 小时前
Docker 部署 PostgreSQL 数据库
数据库·docker·postgresql
残轩9 小时前
Win10 家庭版 Docker 环境搭建详解(基于 WSL2)
前端·后端·docker