.NET 6 WebAPI 已打包应用 Docker 部署文档
一、文档说明
本文档适用于已打包完成的 .NET 6 WebAPI 应用(仅包含编译后的程序集及依赖文件,无 .csproj 等项目文件),指导如何通过 Docker 部署并固定服务端口为 8011。
二、前置条件
- 服务器环境:CentOS 系统(或其他 Linux 发行版),已安装 Docker。
- 应用文件:已打包好的 .NET 6 WebAPI 应用文件(包含主程序集
.dll、依赖文件等)。
三、部署步骤
3.1 准备应用文件
将已打包好的 .NET 6 WebAPI 应用文件上传至服务器指定目录(例如 /usr/local/wcswebapipck/)。确保目录中包含主程序集(如 Project.WebApi.dll)及所有运行依赖文件。
3.2 创建 Dockerfile
在应用文件所在目录(/usr/local/wcswebapipck/)下,创建 Dockerfile 文件,内容如下:
# 使用 .NET 6 运行时镜像(仅包含运行时,体积更小)
FROM mcr.microsoft.com/dotnet/aspnet:6.0
# 设置容器内工作目录
WORKDIR /app
# 暴露应用监听的端口(固定为 8011)
EXPOSE 8011
# 配置应用启动时绑定的端口(固定为 8011)
ENV ASPNETCORE_URLS=http://+:8011
# 将宿主机当前目录(应用文件目录)的所有文件复制到容器的工作目录
COPY . .
# 启动 WebAPI(将 Project.WebApi.dll 替换为你的实际主程序集名称)
ENTRYPOINT ["dotnet", "Project.WebApi.dll"]
- 注意:需将
Project.WebApi.dll替换为你实际的主程序集文件名。
3.3 构建 Docker 镜像
在应用文件目录(/usr/local/wcswebapipck/)下,执行以下命令构建 Docker 镜像:
docker build -t my-webapi:v1 .
- 参数说明:
-t my-webapi:v1为镜像指定标签(名称为my-webapi,版本为v1),.表示以当前目录作为构建上下文。
3.4 运行 Docker 容器
执行以下命令启动 Docker 容器:
docker run -d -p 8011:8011 --restart=always --name my-webapi-container my-webapi:v1
- 参数说明:
-d:后台运行容器。-p 8011:8011:将容器的8011端口映射到主机的8011端口(实现外部访问)。--restart=always:配置容器随 Docker 服务自动启动。--name my-webapi-container:为容器指定名称,便于管理。my-webapi:v1:使用的镜像名称及标签。
四、验证部署
4.1 查看容器运行状态
执行以下命令,查看容器是否正常运行:
docker ps
若能看到名为 my-webapi-container 的容器,且 STATUS 列显示 Up,则容器运行正常。
4.2 测试接口访问
在浏览器或通过 curl 命令,访问 WebAPI 接口(以测试接口 api/values 为例):
curl http://服务器IP:8011/api/values
若能正常返回接口数据,则部署成功。
五、常见问题排查
5.1 容器启动后立即退出
- 原因:可能是主程序集名称配置错误,或应用启动时发生错误。
- 解决:查看容器日志,定位错误原因:
docker logs my-webapi-container
5.2 接口访问失败
- 原因:可能是端口映射错误、防火墙阻止端口访问或应用内部错误。
- 解决:
- 检查端口映射:确保
docker run命令中-p参数配置正确。 - 关闭服务器防火墙(或开放
8011端口):# 关闭防火墙(CentOS 7 及以上) systemctl stop firewalld # 开放 8011 端口(如需保留防火墙) firewall-cmd --zone=public --add-port=8011/tcp --permanent firewall-cmd --reload - 查看容器日志,排查应用内部错误。
- 检查端口映射:确保
六、更新应用
若需更新 WebAPI 应用,步骤如下:
- 将新的打包文件替换服务器上原应用文件目录(
/usr/local/wcswebapipck/)中的文件。 - 重新构建镜像,请注意需要在应用文件目录下执行命令('/usr/local/wcswebapipck/'):
docker build -t my-webapi:v2 . - 停止并删除旧容器:
docker stop my-webapi-container docker rm my-webapi-container - 启动新容器,请注意需要先 build my-webapi:v2 才可以 run my-webapi:v2 :
docker run -d -p 8011:8011 --restart=always --name my-webapi-container my-webapi:v2

浙公网安备 33010602011771号