HTML5技术

跨平台运行ASP.NET Core 1.0 - B.it

字号+ 作者:H5之家 来源:博客园 2016-04-17 10:00 我要评论( )

前言 首先提一下微软更名后的叫法: 现在伴随着ASP.NET Core 1.0 RC2版的更新速度,许多官方文档都跟不上,还停留在RC1版的使用方式上(RC1版是继Beta版之后第一个发布的稳定版本)。RC1和RC2的 区别在于 RC1版使用dnvm、dnx来restore packages和run(dnu是包

前言

首先提一下微软更名后的叫法:

 

      现在伴随着ASP.NET Core 1.0 RC2版的更新速度,许多官方文档都跟不上,还停留在RC1版的使用方式上(RC1版是继Beta版之后第一个发布的稳定版本)。RC1和RC2的区别在于RC1版使用dnvm、dnx来restore packages和run(dnu是包含在dnx中的),而RC2版会基于.NET Core CLI,使用dotnet命令来进行building,compiling, NuGet package management, running, testing。如果想了解更多ASP.NET Core 1.0 的发布进度和里程碑可以查看:ASP.NET Core 1.0 Schedule and Roadmap。就目前而言,在某些系统中我们已经可以遗弃mono,只使用.NET Core 和.NET Core CLI 就可以提供对.Net程序进行生成编译运行环境(同时包含.NET Core 和.NET Core CLI的.NET Core SDK二进制包,可以在下载)。至于mono的未来,微软的SocttHunter和Scott Hasnselman说到:切换到MIT开源许可协议的mono将作为公司未来构建一个统一.NET库的计划中的一部分,了解详情。可见开源的mono会逐步融入.NET Core体系中。

  •  .NET Core SDK=.Net Core+.NET Core command-line(简称CLI\.NET CLI\.NET Core CLI,dotnet commands)
  •  .NET Core=基础类库.NET Core Framework(CoreFX)+运行时.NET Core Runtime(CoreCLR)+编译器管理(如管理编译器Roslyn)+
  •  

    本文章主要介绍ASP.NET Core 1.0  RC2版的跨平台部署,(【部署环境】作为第一步,有助于理解程序的运行环境和机理)。如果想了解跨平台部署RC1版,请查看

     

    下面会分别介绍在Dokcer、CentOS、Ubuntu环境中的部署方式,Windows比较简单,就不作介绍。运行的ASP.NET Core程序以cli-samples的HelloMvc为例。

     

    一、在Docker中运行

    1、环境

    这里演示的Docker宿主机环境是CentOS7,下面介绍Docker在CentOS7上的安装。在其他系统中安装Docker,请查看Install Docker Engine

    提示:CentOS在7中已经启用firewalld作为新的防火墙,替换掉原先的iptables。而Docker对firewalld的兼容性虽然不太好,但对下面的例子运行中暂时没发现有影响。

     

    2、安装docker

    首先查看CentOS的内核版本(CentOS7系统必须为64位,内核必须3.10及以上)

    uname -r 3.10.0-229.el7.x86_64

    更新已经安装的包

    sudo yum update

    安装docker

    curl -fsSL https://get.docker.com/ | sh

    启动docker

    sudo service docker start 或 systemctl start docker

    运行docker hello world demo

    sudo docker run hello-world

     

    3、创建docker用户组

    此用户组具备管理员权限,以后执行docker命令可以不加sudo(这里只做演示,直接使用root)

    (1) 以带有管理员权限的用户登入控制台
    (2) sudo usermod -aG docker your_username(你的用户名)
    (3) 登出再登入控制台
    (4) 不带sudo执行docker run hello-world,看是否正确输出Hello world
    (5) 设置开机启动sudo chkconfig docker on 或 systemctl enable docker

     

    4、 docker相关概念

    container:容器,用来加载各种image,可以看成操作系统。加载各种app。允许多个容器同时运行,并且容器一般无法相互访问宿主服务器资源,除非挂载数据卷volume之类的,数据卷的使用可以参照:)。容器中可以运行一些网络应用,要让外部也可以访问这些应用,可以通过 -P 或 -p 参数来指定端口映射。

     

    image:镜像文件,可以当成app运行在container中,image有一个Dockerfile文件,保存折生成自身image时要执行的命令。


    docker images //显示所有镜像文件 docker ps -q -a //显示所有容器 docker run -it --name dn_container -d -p 5000:5000 microsoft/dotnet:latest //新增一个容器用于加载 microsoft/dotnet:latest镜像文件,-p host port:container port docker run -it --name dn_container -d -p 127.0.0.1:5000:5000 microsoft/dotnet:latest docker start dn_container //启动容器 docker attach dn_container //关联并进入启动容器,需要先启动容器 docker stop dn_container //停止容器 docker kill $(docker ps -a -q) //强制停止所有容器 docker rm $(docker ps -a -q) //删除所有容器 doker commit ContainerID NewImageName //将容器里的内容提交为新的镜像文件 docker rmi -f 7d9495d03763 //删除所有容器 //标记镜像,push到Docker Hub docker images docker tag a66b7258f574 sobit17/sobit-dotnet:1.0.0-beta-002252 docker images docker login --username=test --email=test@qq.com docker push sobit17/sobit-dotnet

    docker常用命令

     

    5、制作HelloMvc image

    在运行

    5.1 首先安装git,克隆cli-samples下来

    mkdir app cd app git clone https://github.com/aspnet/cli-samples.git cd cli-samples

    需要显式指定HelloMvc的端口(即使指定的是5000端口),目前尝试过不加下面这段代码,发现默认的5000并不起作用

     

    5.2 在HelloMvc的当前目录执行,并备好NuGet.config和Dockerfile文件

    NuGet.config:读取package下载的源地址(nuget seeds);

    Dockerfile:制作image必须;

     

    5.2.1创建NuGet.config文件

     

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

    相关文章
    • 如何在 ASP.NET Core 中发送邮件 - Savorboard

      如何在 ASP.NET Core 中发送邮件 - Savorboard

      2017-05-02 08:02

    • 十二个 ASP.NET Core 例子 - Savorboard

      十二个 ASP.NET Core 例子 - Savorboard

      2017-04-27 16:01

    • ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

      ASP.NET MVC5请求管道和生命周期 - 雪飞鸿

      2017-04-24 08:04

    • ASP.NET Core MVC 源码学习:详解 Action 的激活 - Savorboard

      ASP.NET Core MVC 源码学习:详解 Action 的激活 - Savorboard

      2017-04-14 13:04

    网友点评
    $