zoukankan      html  css  js  c++  java
  • 说一说windows原生docker及windows Server Container , Hyper Container 之间的关系(学习总结)

             前一段时间学习netcore的时候解除到了docker,感觉真是不错的技术。百度了不少教程。因为我用windows就下载安装了一下试试。但是没有安装成功,才发现 需要安装virtualbox虚拟机,与我的hyper-v冲突。后来看新闻出了windows版的docker,把virtualbox换成了hyper-v。也算小惊喜吧,心想如果能出原生的windows 版docker就好了。试着 注册了个docker账号 ,并申请内测(打肿脸充胖子),一个月过去了,也没见给发邮件。

          于是又百度了些资料,发现了 Windows Containers Documentation 这一个网站,这不就是windows版的docker吗,读了之后才知道,原来是真正的windows 原生 docker,基于windows内核的,不再是原来的linux虚拟机。但是目前只能运行在windows server2016 和nanoserver上,win10上我试着安装了一下,提示“The Windows daemon requires Windows Server 2016 Technical Preview 5 build 14300 or later”。winnserver2016感觉有点庞大 ,就装了轻量版的nanoserver,费了九牛二虎之力总算能用了。(看文章特别是教程还是得一步步慢慢的看,急不得,我当时就是用到啥看啥,安装时遇到了多问题)。

          windows版的docker提供了两套 容器技术,一种是server container,这种和linux上的docker差不多,几个容器可以共享主机内核,任务管理器里面可以看到对应进程,隔离级别比较低。


          另一种就是 Hyper Container ,这一种就是在外边又加了一层虚拟机,这种能提供内核级别的隔离,容器运行在自己的内核中,主机任务管理器查看不到,其实就是一个小虚拟机,这种部署起来也不麻烦,和第一种差不多,只需要加上“--isolation=hyperv”参数就行 比如“
    docker run --isolation=hyperv nanoserver ping localhost -t ”。  其中naoserver是OS镜像。下面我们说一说 容器镜像
         

       容器镜像分两种,一种是os镜像 另一种就是普通的容器镜像, os镜像由 微软提供里面包含os核心组件。由微软提供。现在有两套os镜像:

    Name                 Version          Source           Summary
    ----                 -------          ------           -------
    NanoServer           10.0.14300.1010  ContainerImag... Container OS Image of Windows Server 2016 Technical...
    WindowsServerCore    10.0.14300.1000  ContainerImag... Container OS Image of Windows Server 2016 Technical...

    另一种就是普通的容器镜像,这种镜像基于os镜像或者其他镜像。

    还有就是就是学习过程中遇到的两个问题 :

    第一个是运行nanosever上docker时候比如docker run -it... docker attach...的时候会报错 需要用docker的远程管理 ,具体见https://docs.docker.com/engine/security/https/

    第二个是以hyper-v容器(--isolation=hyperv)的方式运行的时候提示not enough storage......我现在也不知道什么原因。

    更多内容大家还是参考 Windows Containers Documentation 。语言最好切换到英文,因为英文文章的更新日期是四月份,汉语翻译文章的日期是二月份,相差俩个月 ,里面的东西很多都不一样了。

  • 相关阅读:
    linux查看cpu、内存信息
    PHP之路,Day1
    Zabbix3.0完整部署
    linux时间同步
    nginx日志切割脚本
    Rsync+sersync文件实时同步
    阿里云自动挂载云盘脚本
    nginx不支持pathinfo 导致thinkphp出错解决办法
    VIM选项配置说明
    vagrant 本地添加box 支持带版本号
  • 原文地址:https://www.cnblogs.com/kubishishu/p/5450720.html
Copyright © 2011-2022 走看看