设为首页 收藏本站
查看: 1627|回复: 0

[经验分享] 一步一步学习ASP.NET 5 (七)- 快速把ASP.NET 5应用以Docker方式部署到Mac上

[复制链接]

尚未签到

发表于 2015-10-13 09:19:09 | 显示全部楼层 |阅读模式
          编者语:工作太多,博客要慢慢来。做IT真的不容易,短短几天世界也变了,新的Windows 10 10049带来了Project Spartan.而新的Windows 10 for Phone的新Build也很快会出现。还有两个好消息,一个是连任了Microsoft MVP ,第二个作为一个果粉下周将会是一个激动的日子,新的MacBook可以买到了我要高配的太空灰色。普天同庆的日子,我和大家聊个比较时髦的问题-Docker.
  

         什么是Docker ?
   DSC0000.jpg
  Docker是一个开源的应用容器引擎,可以把应用和应用依赖的包封装到一个容器当中,然后发布到任意的Linux机器上,也可以实现虚拟化。如果你做iOS App,会发现Docker中的容器就是一个沙箱,容器之间不会有任何接口。换句话说,Docker应用就是一个App.Docker的优点是没有性能开销,可以很方便地部署到服务器和数据中心.更重要一点是Docker不依赖于任何语言,框架或者操作系统,这对企业向云端迁移有很大的意义。
         了解更多关于Docker 可以访问 Docker 官网  和 Docker的百度百科。
        
        Mac上的Docker
          由于Docker是基于Linux的内核,在Mac上是不能直接使用Docker。Mac上运行Docker你需要安装Boot2Docker应用。Boot2Docker 包含了VirtualBox的虚拟机,Docker以及boot2docker管理工具。看看下图传统Linux的Docker和Mac上的Docker对比
           DSC0001.jpg
     

  在传统的Linux上Docker客户端,Docker,Docker Daemon,和相关容器直接运行在localhost上。而Mac ,由于通过Boot2Docker所以Docker容器是分配到所启用的虚拟机的IP地址上。
          更多内容可以看官方关于Boot2Docker的详细文档(点击进入)
  在Mac上安装Boot2Docker
  在Mac上安装你可以用安装包,也可以用命令行。(命令行由于放在AWS服务器上,在正常条件下是访问不了的。所以建议用安装包)
           1.安装包方式(点击进入下载pkg) .下载boot2docker.pkg包后,一步步安装即可。
DSC0002.jpg
  2.命令行
              前提需要安装Homebrew环境(点击打开链接)
            1)你需要保证你的brew版本是最新的  所以先运行brew update
            2)  通过brew安装Boot2Docker  对应命令是brew installboot2docker
            3)  初始化你的Boot2Docker ,这个命令会去下载iso虚拟机镜像(这里国内貌似没有佛跳墙是不能使用的,大家要注意)
               对应命令是boot2docker init

            4)  安装成功后你就可以通过boot2docker up去启动,
                 如果你是图形界面的当然直接点击 DSC0003.jpg
            5)  你可以通过docker info去查看你的docker信息
            DSC0004.jpg
            创建ASP.NET 的镜像
          为了让容器更好地载入ASP.NET 5的运行环境,我们做一个Image给在Docker的ASP.NET 5 app重用。首先你去Github上下载对应的Dockfile(https://github.com/aspnet/aspnet-docker)。并找到你对应ASP.NET 5的Dockfile,这里我的对应版本是ASP.NET 5 beta 3.
          DSC0005.jpg
       从这个脚本可以看到,这里的镜像是配置一个Mono运行时,还有ASP.NET 5 beta 3的支持,还有一个在Linux运行ASP.NET 5的相关库,如支持Kestrel运行的libuv.

         通过命令行方式定位到和Dockerfile相同的文件夹内,运行docker build -t aspnet .(千万不要少了.)这时就会为images加载好需要的文件。
         DSC0006.jpg
         稍等片刻,就已经完成了。再次运行docker images 你可以看到有asp.net 和mono 的两个images.
         ASP.NET 5 running in Docker
         1.在本地创建ASP.NET 5 的应用。  可参考我的文章一步一步学习ASP.NET 5 (二)- 通过命令行和sublime创建项目  
         2.配置好对应的Dockerfile ,这个Dockerfile 必须要与你的项目在同级目录下。这里其实是对在本地的应用进行封装,并添加到             Docker上的脚本,这里涉及引入之前的ASP.NET 5 images 并把它和应用MyDockerDemo一起封装到MyDockerApp中,之后
          执行脚本还原依
赖的库,并设置好5004端口等操作
            DSC0007.jpg
         3. 之后定位到Dockerfile 和应用的跟目录,之后执行docker build -t mvcapp .(千万不要少了.)这里主要是为Docker创建一个
           mvcapp的容器。执行docker images 可以看到如下图的结果
            DSC0008.jpg
       4. 之后执行
dockerrun -i -p5004:5004 -tmvcapp 就是启动Docker的mvcapp容器了。正常状态如下图:
              DSC0009.jpg
         5. 如何访问?由于Boot2Docker是通过虚拟机分配地址的,所以你先要查看你的Boot2Docker的真实地址,执行boo2docker ip
             看。之后就帮上ip+端口即可访问。
            DSC00010.jpg
           

   6.如果你想使用本地的IP你需要设定VBoxManage modifyvm "boot2docker-vm"--natpf1 "tcp-port5004,tcp,,5004,,5004";即可。
  
  好吧相信你按住上面步骤已经可以很轻松地掌握在Mac上把应用快速部署到Dock上了吧。
         版权声明:本文为博主原创文章,未经博主允许不得转载。

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-126129-1-1.html 上篇帖子: 谁是Docker的开发者 下篇帖子: Docker:一点思考
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表