美文网首页
Windows docker 学习

Windows docker 学习

作者: cangfriend | 来源:发表于2018-12-10 21:56 被阅读0次

    本人行业属于智能制造,偏向工厂应用,客户端程序全部是.Net 的 WinForm;本系统的后台是.Net,多系统交互的有java的;因系统发布效率问题,想采用docker Windows 的生产力环境;

    docker 技术原理,和好处在此不过多描述,大家都说好;

    主要学习 Windows containers的应用,是 Windows原生容器;不是linux,不是linux,不是linux,重要的事情说三遍;

       下面把学习中遇到的坑描述好,避免大家走弯路;

    1. 先讲关于Docker For Windows

        Microsoft是所有软件行业回避不掉的,Docker官方开始支持Windows系统;

        技术有2种,

        1是docker toolbox,使用 Oracle VM Virtualbox运行一个可以部署docker的虚拟机,仅支持linux container;

        2是 Docker for Windows Desktop,使用hypep-v运行一个可以部署docker的虚拟机,可以切换linux container和Windows container,同时只能1种,不同2个同时存在;

    2. .Net 和 .Net core docker 区别

         .Net core 是.Net的跨平台子集,可以支持linux 当然可以Windows;asp.net core 可以运行在linux container 的docker环境;

         .Net core技术已经非常成熟了,我在园子部分页面的右下角看到了 asp.net core的标记,不知道是不是园子全是asp.net core的环境;

         .Net是不能运行在linux container 的docker环境;只能运行在 Windows container,微软原生的容器中;

         所以,支持 .Net core的docker是有2套的,1是linux container 2是Windows container,前者底层是linux 后者底层是Windows,以下图为例:

         asp.net core docker demo程序的名称都是“microsoft/dotnet-samples”,

          使用pull命令时,linux container 自动获取的是“版本 是 OS:Linux 4.9.125-linuxkit”

                                Windows container,自动获取的是基于Windows servercore的 10.几的版本号;

    3. Windows container

       先讲 微软发布的Windowsserver core,以下从网上复制的;

       从 Windows Server 2008 开始,管理员可以选择安装具有特定功能但不包含任何不必要功能的 Windows Server 的最小安装服务器核心(Server Core),它为一些特定服务的正常运行提供了一个最小的环境,从而减少了其他服务和管理工具可能造成的攻击和风险。服务器核心并不支持所有的服务器角色,它只提供了运行以下一个或多个服务器角色的环境:Windows Server 虚拟化、动态主机配置协议 (DHCP) 服务器、域名系统 (DNS) 服务、 文件服务器、Active Directory 目录服务 (AD DS)、Active Directory 轻型目录服务 (AD LDS)、 Windows 媒体服务、打印管理等

    同时服务器核心还支持以下特征:群集服务器,网络负载平衡,Unix子系统,Windows Server Backup,MPIO,Removable Storage Management,Windows BitLocker驱动器加密,SNMP,Single Instance Storage以及Telnet客户端等特征。

      再讲 Windows container,

      Windows container就是基于 Windows server core 的 docker环境;简单讲,可以支持所有Windows的非界面(gui)的后台服务和程序,例如asp.net网页,wcf,IIS服务,其他后台服务程序 等等;

      microsoft/windowsservercore image 是基础,

    4. Windows server 部署Docker

      如果是学习,在win10用  docker toolbox 或 Docker for Windows Desktop 都可以;

       生产关键怎么办?

       微软从winserver2016开始支持原生的Windows container(基于 win 10.几版本号),docer 命令 与 windows powershell无缝集成;

       本人在 winserver2019进行测试,操作Windows container 完全媲美 linux docker;,让Windows从业人员体会到全程 powershell命令行的快感;

       注意:只支持powershell命令行,(除了Kitematic)其他linux下docker的界面操作环境都不支持;

       在Windows container 环境下,Kitematic跟没有一样;在Windows下使用 linux docker,Kitematic还凑活;

    5. Windows server 下 Windows container 的排他性;

       在Windows server(以2019为例),原生只支持 Windows container ;通过手工下载和配置 “docker-machine-Windows-x86_64.exe”,可以支持 linux container ;单同时只能支持1种;

       就生产环境而言,在 Windows server 下 运行  linux container  docker ,完全没有意义;

       网上看到docker官方新闻,同时docker images,可以列出本机的 Windows container  和  linux container ;字面意思是可以同时支持 Windows container  和  linux container ;网上没有例子也没有资料;

       仅有1位前辈提到1709版的server 2016支持2个共存,没有看到实例;

    6. Windows docker 开发环境

        在开发环境,因为mysql、oracle等,如果安装和切换,实在不方便,可以使用linux container来部署;随用遂启动,在不用的时候完全不占用本机的cpu内存资源;

    7. windows docker 生产力环境:

        国内仅看到携程的.net docker介绍,因为携程的.net 后台很多,是.net的企业应用大户,为了资源和效率,已经部署了好多.Windows container环境,仅此1家;

    8. asp.net 不是 .net core,不是 .net core,不是 .net core;

       验证成功,延伸出来,webserver,wcf等后台程序完全没有问题;Windows server 也可以享受docker的福利;

    相关文章

      网友评论

          本文标题:Windows docker 学习

          本文链接:https://www.haomeiwen.com/subject/shcjhqtx.html