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

[经验分享] windows10/2016上使用docker

[复制链接]

尚未签到

发表于 2018-5-29 13:15:01 | 显示全部楼层 |阅读模式
  该文章是在一个物理主机使用windows server 2016或windows 10上使用docker非hyper-v虚拟机。
  首先搭建一个容器主机。
  

  按照微软的官方文档搭建该容器主机,步骤如下:
  


  •   安装容器功能
      PS C:\> start-process powershell -verb runas
      PS C:\> install-windowsfeature containers
      PS C:\> shutdown -r -t 0
      PS C:\> get-containerhost
  •   启用hyper-v角色
      PS C:\> install-windowsfeature hyper-v
  •   创建虚拟交换机
      PS C:\> new-vmswitch -name "DHCP" -switchtype external(这是使用的桥接方式,还可以使用nat方式)
      PS C:\> new-vmswitch -name "virtual switch" -switchtype nat -natsubnetaddress 172.16.0.1/24
  •   如果虚拟交换机配置的是nat类型,则需要创建nat对象。
      PS C:\> new-netnat -name containernat -internalipinterfaceaddressprefix "172.16.0.1/24"
  •   安装操作系统镜像
      PS C:\> install-packageprovider containerprovider -force
      ps C:\> find-containerimage
      ps C:\> install-containerimage -name nanoserver
      ps C:\> install-containerimage -name windowservercore
      安装操作系统镜像的原理是使用微软提供的BITS服务,从其网站上下载一个.wim的文件然后进行转换成该容器的镜像的方式,存放的目录默认在C:\programdata\microsoft\windows\image。下载的目录在C:\Windows\winsxs\
      如果找到在哪个下载地址的话请告诉我。
      ps C:\> get-containerimage
      

      Name              Publisher    Version      IsOSImage
      ----              ---------    -------      ---------
      NanoServer        CN=Microsoft 10.0.10586.0 True
      WindowsServerCore CN=Microsoft 10.0.10586.0 True
  •   然后按照该文档在windows上安装docker及docker服务。
      https://msdn.microsoft.com/zh-cn/virtualization/windowscontainers/deployment/docker_windows

  

  

  容器主机和docker准备完以后就可以在该主机上运行容器了,一种方法是使用powershell运行一个容器,一种方法是使用docker运行容器。两种方法都差不多。具体的见如下命令。
  PS C:\> get-containerimage
  PS C:\> new-container -name tst -containerimagename windowsservercore
  ps c:\> add-containernetworkadapter -containername tst
  ps c:\> get-vmswitch
  ps c:\> connect-containernetworkadapter -containername tst -switchname DHCP
  ps c:\> $container=get-container -name tst(如果这里不定义改变量,则在使用该容器的时候powershell会提示字符串不合法的错误)

  ps c:\> start-container $container
  ps c:\> get-container | start-container(启动所有的容器)

  ps c:\> enter-pssession -containername tst -runasadministrator(使用powershell用户名为administrator的用户进入名为tst的容器,持久性powershell会话,还可以使用一次性操作容器)
  ps c:\> invoke-command -containername tst -scriptblock {new-item -itemtype directory -path C:\application} (该命令为一次性在tst容器中在C盘下创建一个application的目录。)
  ps c:\> stop-container $container
  ps c:\> get-container | stop-container (停止所有容器)
  ps c:\> remove-container $container -force
  ps c:\> get-container | remove-container -force
  

  以上命令使用powershell创建、使用、删除容器。具体的命令使用请get-help command
  

  由于用习惯了linux的操作,在windows上一样的喜欢使用command-line的方式。
  

  

  

  以下是使用docker的方式创建、使用、删除容器(具体的docker方式请help)。
  

  PS C:\> docker images
  C:\> docker run --name iisbase -it windowsservercore cmd
  C:\> powershell.exe Install-WindowsFeature web-server
  C:\> exit
  C:\> docker commit iisbase windowsservercoreiis
  C:\> docker images
  

  if (!(Get-NetFirewallRule | where {$_.Name -eq "TCP80"})) {
  New-NetFirewallRule -Name "TCP80" -DisplayName "HTTP on TCP/80" -Protocol tcp -LocalPort 80 -Action Allow -Enabled True
  }
  

  C:\> docker run --name iisdemo -it -p 80:80 windowsservercoreiis cmd
  

  C:\> del C:\inetpub\wwwroot\iisstart.htm
  

  PS C:\> docker run -p 80:80 windowsservercoreiis
  PS C:\> docker stop tender_panini
  PS C:\> docker stop $(docker ps -q)
  PS C:\> docker rm prickly_pike
  PS C:\> docker rm $(docker ps -a -q)
  

  

  

  

  

  

  

  

  

  

  

  

运维网声明 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-482641-1-1.html 上篇帖子: Docker入门最佳实践 下篇帖子: 如果在docker中部署tomcat,并且部署java应用程序
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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