在Visual Studio 2017中把dotnet core项目发布到Docker,能够让应用运行在标准化的容器环境中,避免不同部署环境的依赖差异问题,同时简化后续的运维和扩容流程。
前期环境准备
首先需要确认本地已经安装好必要的组件,缺少任何一项都会导致发布流程无法正常进行:
- 已安装Visual Studio 2017且勾选了.NET Core跨平台开发工作负载
- 本地安装Docker Desktop,并且切换到Linux容器模式
- dotnet core项目版本不低于2.0,保证和Docker工具兼容
项目适配配置
如果现有dotnet core项目没有配置Docker支持,需要手动添加对应的配置文件:
添加Dockerfile文件
在项目根目录新建名为Dockerfile的文件,注意没有后缀名,内容如下:
# 使用官方dotnet core运行时镜像作为基础镜像 FROM mcr.microsoft.com/dotnet/core/aspnet:2.1 AS base # 设置容器内的工作目录 WORKDIR /app # 暴露容器端口,和项目启动端口保持一致 EXPOSE 80 # 使用dotnet core SDK镜像进行编译构建 FROM mcr.microsoft.com/dotnet/core/sdk:2.1 AS build WORKDIR /src # 复制项目文件到容器内 COPY ["TestProject/TestProject.csproj", "TestProject/"] # 恢复项目依赖 RUN dotnet restore "TestProject/TestProject.csproj" # 复制所有项目文件到容器内 COPY . . WORKDIR "/src/TestProject" # 执行编译发布 RUN dotnet publish -c Release -o /app/publish # 最终运行阶段,使用基础镜像 FROM base AS final WORKDIR /app # 复制构建产物到运行目录 COPY --from=build /app/publish . # 设置容器启动命令 ENTRYPOINT ["dotnet", "TestProject.dll"]
调整项目属性
右键点击项目选择属性,在调试选项卡中确认启动方式已经选择为Docker,同时检查环境变量配置是否正确,避免运行时出现配置缺失的问题。
发布到Docker流程
完成配置后就可以在Visual Studio 2017中执行发布操作:
- 右键点击项目选择发布选项
- 在发布目标中选择Docker容器注册表
- 选择发布到本地Docker守护进程,点击下一步
- 确认发布配置为Release模式,点击发布按钮
发布过程中Visual Studio会自动执行Docker镜像构建操作,等待进度条完成后就可以在Docker Desktop中看到生成的镜像。
发布后验证
镜像构建完成后,需要验证容器是否能够正常启动运行:
打开命令行工具执行以下命令启动容器:
# 启动容器,映射本地8080端口到容器80端口 docker run -d -p 8080:80 --name test_dotnet_container testproject:latest
启动后打开浏览器访问localhost:8080,如果能够正常看到项目页面,说明发布成功。
常见问题排查
- 如果发布时提示Docker守护进程未启动,需要检查Docker Desktop是否正常运行,并且确认切换到了Linux容器模式
- 如果容器启动后立即退出,可以执行
docker logs 容器ID查看运行日志,通常是项目配置或者端口冲突导致 - 如果镜像构建失败,检查Dockerfile中的路径是否和项目实际结构一致,尤其是项目文件复制的路径部分
Visual_Studio_2017dotnet_coreDocker容器发布修改时间:2026-06-22 17:18:55