HTML5技术

丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0 - 勤奋的小孩

字号+ 作者:H5之家 来源:H5之家 2016-02-08 10:00 我要评论( )

丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0 警告 您当前查看的页面是未经授权的转载! 如果当前版本排版错误,请前往查看最新版本: 提示 更新时间:2016年02月07日。 各位程序媛/程序猿们,猴年快乐。相信不少媛/猿都是被标题吸引来的,那我我先解

丙申年把真假美猴王囚禁在容器中跑 ASP.NET Core 1.0

警告

您当前查看的页面是未经授权的转载!
如果当前版本排版错误,请前往查看最新版本:

提示

更新时间:2016年02月07日。

各位程序媛/程序猿们,猴年快乐。 相信不少媛/猿都是被标题吸引来的,那我我先解释下标题。

提示

本文是一篇半科普文,不对技术细节进行深入探究。

标题解释

ASP.NET Core 1.0

ASP.NET Core 1.0 是一个是跨平台且开源的用于开发网站/Web API 的框架, 原名 ASP.NET 5 (再早期称作 ASP.NET vNext),但并不是 ASP.NET 4.6 的升级版;而是从零开始的版本。

ASP.NET Core 1.0 把所有的功能和模块都进行了拆分,进行了彻底解耦。 源代可以在 Github ASP.NET 上找到。

容器

容器技术是一种虚拟化技术,和虚拟机不同的是:容器技术不会提供一整个操作系统,它只能提供隔离的程序运行环境; 容器技术对系统资源的消耗要远小于虚拟机。

Docker 是一个开源的应用容器引擎,他不需要对内核进行改变,他主要利用操作系统内核特性实现虚拟化,所有容器运行在同一个内核中。

注解

所有容器运行在同一个内核中,意味着所有容器必须和操作系统相匹配,Windows容器不能直接运行在Linux上。

猴子

猴子 是西班牙语单词 mono 的 , 西班牙语中,这个词同时还有可爱的意思。

而我想表达的意思是 Mono Project 。

因此,本文的意思是:在2016年创建一个包含Mono运行环境的Docker容器,然后启动两个实例,让它们给你运行 ASP.NET Core 1.0 的程序。

给猴子建一个家

首先你需要安装 Docker (Linux) 的运行环境,也就是图中蓝色的部分。

https://blogs.blob.core.chinacloudapi.cn/images/aspnetcore-mono-docker-linux-linux.png

https://blogs.blob.core.chinacloudapi.cn/images/aspnetcore-mono-docker-linux-windows.png

啊,这个好麻烦啊…… 如果你和我一样有 Microsoft Azure 的订阅,直接创建个 Ubuntu on Docker 的虚拟机来的更方便。

没有的话,请参考官网文档吧……

在 Windows 上安装 Docker

在 Mac OS 上安装 Docker

提示

Docker 不只有Linux版,也有Windows版(目前是预览版),也就是说,如果想要安装下面两张图的方式安装也可以。

只不过,真用了Windows,一般也就用完整的 .NET Framework 了,而不用 mono

https://blogs.blob.core.chinacloudapi.cn/images/aspnetcore-mono-docker-windows-linux.png

https://blogs.blob.core.chinacloudapi.cn/images/aspnetcore-mono-docker-windows-windows.png

一起动手囚禁一只猴子吧

接下来,有了容器,就可以弄只猴子了。

微软已经制作好了一个容器,并且预置了一只猴子,并上传到了 Docker Hub ,我们可以直接拿来用。

或者,我们可以从Github上弄到培育猴子的代码来自己生成猴子。

在Docker(Linux)中安装Mono及ASP.NET运行环境

在Docker(Windows)中安装Mono及ASP.NET运行环境

创建空的 ASP.NET Core 网站

首先,你需要一个已经完成的 ASP.NET Core 1.0 应用。

对于Windows用户,直接用 vs2015 创建一个新的 ASP.NET Core (模板名称为ASP.NET 5) Web应用即可。

https://blogs.blob.core.chinacloudapi.cn/images/create-aspnetcore-project-1.png

https://blogs.blob.core.chinacloudapi.cn/images/create-aspnetcore-project-2.png

Mac OS 用户,可以参考 在 Mac OS 上创建的 ASP.NET Core 1.0 应用 的前半部分。

给容器里放点吃的

刚刚从 Docker Hub 下载的容器,里面并没有我们的应用,就只有一只猴子而已,并没什么卵用。 现在我们准备把刚刚创建的应用加入到容器中。

  • 创建Dockerfile
  • 如果你在Mac OS上使用了 yo aspnet 来生成的项目,那么你已经有了Dockerfile;否则你需要自己在项目目录创建一个文件名为Dockerfile的文件。

    FROM microsoft/aspnet:1.0.0-rc1-update1 COPY . /app ,

    解释一下每一行。

  • 构建项目
  • docker build .

    查看构建完成的镜像,其中IMAGE ID是构建完成镜像的标识符

    docker images

    给镜像起个名字

    docker tag {IMAGE ID} qinnz/wukong

    小技巧

    镜像相当于容器的底片,我们可以用镜像创建出许多一模一样的容器。

    让真假美猴王同时给我们跑 ASP.NET Core

    好了,你已经有了一个镜像,需要把它运行起来,当然你可以运行多个实例(不过不能绑定同一个端口)。

    docker run --name monkey_king -d -p 80:5000 qinnz/wukong docker run --name his_dobule -d -p 81:5000 {IMAGE ID}

    我们在后台( -d )启动了2个实例(一个是真猴王,一个是假猴王),分别把这两个容器(可以使用 Tag 或 IMAGE ID来标识)的5000端口映射到宿主机的80和81两个端口了。

    至此,我们就创建一个包含Mono运行环境的Docker容器,然后让它给你运行 ASP.NET Core 1.0 的程序。

    更多资源

    ASP.NET 官方文档

    在 Mac OS 上创建并运行 ASP.NET Core 1.0 网站

    在 Mac OS X 上创建的 .NET 命令行程序访问数据库 (使用Entity Framework 7 )

    Docker

    Docker 文档

    声明

    知识共享许可协议

     

    1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。

    相关文章
    网友点评