参考地址:在 Docker 容器中运行 ASP.NET Core 应用 | Microsoft Learn
1、 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 /api/escser COPY [".", "."] ENTRYPOINT ["dotnet", "EscortControl.Lan.Api.dll"]
2、 Linux部署
方案一:

docker相关命令:
- dotnet build (上传源码需要打包)
- docker build -t 镜像名字 ./ (构建镜像)
- docker run -d -p 5000:80 --name 容器名称 镜像名字
- docker -v 查看版本
- docker info 查看宿主机上的容器的状态
- docker search centos 搜索镜像 eg: docker search nginx
- docker pull [镜像名称] 拉取镜像 eg: docker pull nginx:latest 拉取nginx 最新镜像
- docker images 查看本地镜像
- docker ps 查看运行的容器
- docker run 创建并且运行容器
- docker start/restart [容器id] 启动容器
- docker stop [容器id]
- docker rm [容器id] 删除容器
- docker logs [容器id] 查看容器日志(报错等)
- docker inspect [容器id] 获取容器元数据
- docker exec -it [容器id] bash 进入容器, exit 退出
- docker top [容器id] 查看容器中运行的进程信息
- docker cp <宿主机文件路径> <容器名或ID>:<容器内目标路径> 从宿主机复制文件到容器
- docker cp <容器名或ID>:<容器内文件路径> <宿主机目标路径> 从容器复制文件到宿主机
- docker exec -it 容器名或ID ls 容器目录

方案二:脚本指令

# 1. 使用新标签构建镜像(保留旧版本)
docker build -t escortapi:$(date +%Y%m%d) /root/Publish/EscortControl.Service.Api/
# 2. 流量切换后清理旧容器
docker stop escortapi && docker rm escortapi
# 3. 先启动新容器再清理旧资源
docker run -d \
--name escortapi \
-p 60201:9302 \
-v /usr/share/fonts:/usr/share/fonts \
-v /root/Publish/EscortControl.Service.Api/Upload:/api/escortapi/Upload \
--restart always \
escortapi:$(date +%Y%m%d)
# 4. 按需清理旧镜像(保留最近2个版本)
docker images | grep 'escortapi' | awk '{print $3}' | uniq | tail -n +3 | xargs docker rmi 2>/dev/null
浙公网安备 33010602011771号