详细可以参考微软官方文档:https://docs.microsoft.com/zh-cn/aspnet/core/host-and-deploy/docker/building-net-docker-images?view=aspnetcore-3.0
1.先将开发完成的netcore应用发布成文件夹,
2.使用cmd命令切换到这个发布目录
cd publish/
3.可以使用命令dotnet运行,看是否正常
https://docs.microsoft.com/zh-cn/dotnet/core/tools/dotnet-run?tabs=netcore21
# 切换到开发环境(development区分大小写) SET ASPNETCORE_ENVIRONMENT=development # 设定端口号 SET ASPNETCORE_URLS=http://*:21022 # 然后运行 dotnet Zhousy.LivestockTrade.Web.Host.dll
4.然后访问这个地址看是否正常
5.配置Dockerfile文件
#声明使用的基础镜像 FROM mcr.microsoft.com/dotnet/core/aspnet:2.1 AS runtime #设置环境变量,修改.netcore默认端口(多个可以用;分隔) ENV ASPNETCORE_URLS http://*:8085;http://*:8086 ENV ASPNETCORE_ENVIRONMENT staging #设置导出端口,与上面端口一致 EXPOSE 8085 EXPOSE 8086 #设置工作目录 WORKDIR /app COPY . . #指定应用入口点Zhousy.LivestockTrade.Web.Host.dll代表主程序文件 ENTRYPOINT ["dotnet", "Zhousy.LivestockTrade.Web.Host.dll"]
6.在cmd下去build一个镜像(注意最后有一个点)
docker build -t zhousy_livestock:latest .
7.build完成之后去run一个容器
与上面端口一致 docker run --name con_zhousy_livestocktrade -p 8085:8085 -p 8086:8086 zhousy_livestocktrade
--name 容器名称 -p 宿主端口:容器端口 使用的镜像名称:镜像版本
另外也可以不在dockerfile里设置环境变量,而是在run 后面 -e 来设置环境变量,一定要在run后面 -e 不然会无效
docker run -e "ASPNETCORE_ENVIRONMENT=development" -d -p 8085:8085 -p 8086:8086 --name="con_faka_api" faka_api:latest