Windows10使Docker部署DoNet CoreASP.NET Core开发-Docker部署运行。

Win10暨Mac稳定版的Docker发布了,之前看了产徐磊先生的几乎首Docker4Dotnet的稿子http://devopshub.cn/2016/07/08/docker4dotnet-1-overview-and-helloworld/,但一直没动手。。懒癌晚期了

ASP.NET Core开发Docker部署,.NET Core支持Docker 部署运行。我们用ASP.NET
Core 部署在Docker 上运行。

未雨绸缪只DotNet
Core的Web应用程序,测试一下,并召开点小修改

大家兴许都见识过Docker
,今天我们不怕详细摸底一下Docker的用途,以及实际的施用场景。

betway88客户端下载 1

Docker源于PaaS,PaaS的行使场景就是凡Docker的运场景。

betway88客户端下载 2

Platform as a Service: 平台即服务, 是面向软件开发者的劳动,
云计算平台供硬件, OS, 编程语言, 开发库, 部署工具,
帮助软件开发者再快的开发软件服务. 比如Google的GAE.

即便以运行的下证实下时宿主的条件,没别的意思

八单Docker的诚实应用场景 http://dockone.io/article/126

附带可以指定下程序入口,启动时经过命令行指定只监听端口:

Docker 最充分优势:

               IConfiguration config  = new ConfigurationBuilder()
              .AddCommandLine(args)
                      .Build();

            var host = new WebHostBuilder()
               .UseConfiguration(config)
                .UseKestrel()
                .UseContentRoot(Directory.GetCurrentDirectory()) 
                .UseStartup<Startup>()
                .Build();

静态打包:把应用程序及其运行时包装为一个镜像;
动态运行:以一个施用容器的款型运行是以。

然后简短还原下引用,再公布一下举行只测试

咱俩管需再关注每个系统如设置什么条件,直接以镜像复制到系统被运作。

betway88客户端下载 3

一致软打包,直接运行。

betway88客户端下载 4

betway88客户端下载 5

运作一下,证明代码是可以健康飞的。而且是于我的Machine:DESKTOP-078UA43
下运作的

参照Docker 的 logo ,我们可以用Docker
理解呢鲸鱼上的集装箱,而鲸鱼就是操作系统。

betway88客户端下载 6

Docker
是一个集装箱,将有着的条件从包好当共,我们一味需要考虑挪动集装箱。

 

 

 

下我们不怕来规范开.NET Core 的Docker 之同。

 

 

 测试下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) 一次性删除所有的镜像。

 

装完docker后先关取下dotnet
core的镜像 docker pull
microsoft/dotnet:latest

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”)

betway88客户端下载 7

还原 dotnet restore

发布 dotnet publish

咱俩于 publish 文件夹上加
Dockerfile文件

FROM microsoft/dotnet:latest

COPY . /app

WORKDIR /app

EXPOSE 5000/tcp

ENTRYPOINT ["dotnet", "aspnetcore.dll"]

最终 publish 目录如下:

betway88客户端下载 8

 

 

将publish 文件夹复制到Ubuntu系统

运行构建命令,构建Docker 镜像。 

docker build -t linezero/demo .

后的触及是得之。

betway88客户端下载 9

接下来运行容器

docker run -it -p 8080:5000 linezero/demo

 betway88客户端下载 10

 

容器与镜像的涉,一个镜像可以创建多独容器。

假如上面的,我得以再创一个 docker run -d -p 8090:5000 linezero/demo 

-d 参数为就算是后台运行,然后经过docker ps
可以看容器运行的状态,通过docker stop 容器id 停止。

 

接下来可以以品种根本目录下过件个Dockerfile,填充下要打包的信:

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 运行程序了,无需关注程序用如何依赖。

 

万一您道本文对而出帮衬,请点击“推荐”,谢谢。

 

FROM microsoft/dotnet:latest
# Set the Working Directory
WORKDIR ./app 
# Configure the listening port to 80 
EXPOSE 5006 
# Copy the app
COPY /bin/Debug/netcoreapp1.0/publish/ /app/  
# Start the app
ENTRYPOINT dotnet DotNetCoreSample.dll --server.urls  http://*:5006 

下一场就是只是于包运行了(docker run -d -p 5008:5004 coresample
可以挂号为后台进程)

betway88客户端下载 11

访问下http://localhost:5008/Home/About 可以看出运行环境已在容器里了

betway88客户端下载 12

 

相关文章

发表评论

电子邮件地址不会被公开。 必填项已用*标注