linux下 docker部署asp.net core 应用程序
1.首先linux上要安装好docker
2.其次vs新建一个webpai项目,添加dockfile
在项目根目录下增加一个Dockerfile文件,里面内容如下:
FROM mcr.microsoft.com/dotnet/core/aspnet:5.0-buster-slim WORKDIR /app COPY . . EXPOSE 80 ENTRYPOINT ["dotnet", "DockerDemo.dll"]
设置Dockerfile的文件属性为始终复制
将发布之后的文件拷贝到装有Docker的主机上
将项目进行发布,把发布之后的文件拷贝到我的云服务器上可以用winscp工具,
打包为镜像,进入发布文件目录,执行docker build命令,将发布文件打包为一个镜像,如下:
执行命令: docker build -t mycoretest
查看镜像 : docker images
根据镜像启动容器(里面包含我们的项目)
镜像生成之后,就可以通过docker run指令根据镜像启动容器了,即启动我们的项目
docker run -d --name mydockerdemo -p 9999:80 mycoretest
-d:后台模式运行;
--name:给运行中的容器指定一个名字;
-p:指定端口映射, 主机的端口9999映射到容器的端80,因为在容器里面我们的项目是以80 端口启动的;
最后一个参数是上一步生成的镜像名称, 即根据此镜像启动一个容器实例。
测试访问看看,只要配置了云服务器的安全组和防火墙放开9999端口,那么外网就可以访问了
输入 http://主机ip:9999 测试下是否可以正常使用
其实编写Dockerfile,打包镜像等操作都是一次性的,只要生成了镜像,后续其他环境直接根据镜像启动即可,不用再单独安装.NetCore运行时等基础设施了,打包好的镜像里包含了完整的运行环境