在线时间:8:00-16:00
迪恩网络APP
随时随地掌握行业动态
扫描二维码
关注迪恩网络微信公众号
原文地址:传送门
ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行。我们将ASP.NET Core 部署在Docker 上运行。 大家可能都见识过Docker ,今天我们就详细了解一下Docker的用途,以及真实的应用场景。 Docker源于PaaS,PaaS的应用场景即是Docker的应用场景。 Platform as a Service: 平台即服务, 是面向软件开发者的服务, 云计算平台提供硬件, OS, 编程语言, 开发库, 部署工具, 帮助软件开发者更快的开发软件服务. 比如Google的GAE. 八个Docker的真实应用场景 http://dockone.io/article/126 Docker 最大优势: 静态打包:把应用程序及其运行时打包为一个镜像; 我们无需再关心每个系统要安装什么环境,直接将镜像复制到系统中运行。 一次打包,直接运行。 参考Docker 的 logo ,我们可以将Docker 理解为鲸鱼上的集装箱,而鲸鱼就是操作系统。 Docker 是一个集装箱,将所有的环境打包好在一起,我们只需要考虑挪动集装箱。
下面我们就来正式开.NET Core 的Docker 之旅。
Docker 命令:docker 命令相关了解。 docker images //镜像列表 docker ps -a //所有运行过的容器 docker ps -l //最后运行容器 docker export 容器id > 文件 //持久化容器 docker import 文件 //导入容器 cat export.tar | docker import - linezero/demo-export:latest docker save 镜像id > 文件 //持久化镜像 docker load < 文件 docker rm 容器id //删除容器 docker rmi 镜像id/镜像名称 //删除镜像 docker run 镜像 //运行
提示:可以使用 docker rm $(docker ps -q -a) 一次性删除所有的容器,docker rmi $(docker images -q) 一次性删除所有的镜像。
ASP.NET Core 运行于Docker本文环境 :Ubuntu 14.04 Docker for Linux 1.11.2
首先我们创建一个ASP.NET Core 应用。 dotnet new -t web 然后在Program.cs 添加 UseUrls("http://*:5000") 还原 dotnet restore 发布 dotnet publish 我们在 publish 文件夹添加 Dockerfile文件 FROM microsoft/dotnet:latest COPY . /app WORKDIR /app EXPOSE 5000/tcp ENTRYPOINT ["dotnet", "aspnetcore.dll"] 最终 publish 目录如下:
将publish 文件夹复制到Ubuntu系统 运行构建命令,构建Docker 镜像。
后面的点是需要的。 然后运行容器
容器跟镜像的关系,一个镜像可以创建多个容器。 如上面的,我可以再创建一个 docker run -d -p 8090:5000 linezero/demo -d 参数也就是后台运行,然后通过docker ps 可以看到容器运行的状态,通过docker stop 容器id 停止。
Dockerfile Docker 容器配置文件源码模板 FROM microsoft/dotnet:latest COPY . /app WORKDIR /app RUN ["dotnet", "restore"] RUN ["dotnet", "build"] EXPOSE 5000/tcp ENTRYPOINT ["dotnet", "run"]
发布后模板 FROM microsoft/dotnet:latest COPY . /app WORKDIR /app EXPOSE 5000/tcp ENTRYPOINT ["dotnet", "xx.dll"] 以上模板都依赖于 microsoft/dotnet 镜像,单独安装的命令为 docker pull microsoft/dotnet 也可以先不安装,build 的时候会为我们安装。国内速度可能有些慢,请耐心等待。 有了Docker dotnet 镜像,你无需折腾dotnet sdk 安装,镜像自带。
我们如果想将Docker 放置到其他机器运行,很简单。 直接保存镜像,然后复制镜像到其他机器,然后使用docker 命令load 既可。 docker save linezero/demo > demo.tar 然后加载命令 docker load < demo.tar 然后就可以使用docker run 运行程序了,无需关心程序需要哪些依赖。 |
2023-10-27
2022-08-15
2022-08-17
2022-09-23
2022-08-13
请发表评论