windows10/2016上使用docker

该文章是在一个物理主机使用windows server 2016或windows 10上使用docker非hyper-v虚拟机。

首先搭建一个容器主机。


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


  1. 安装容器功能

    PS C:\> start-process powershell -verb runas

    PS C:\> install-windowsfeature containers

    PS C:\> shutdown -r -t 0

    PS C:\> get-containerhost

  2. 启用hyper-v角色

    PS C:\> install-windowsfeature hyper-v

  3. 创建虚拟交换机

    PS C:\> new-vmswitch -name "DHCP" -switchtype external(这是使用的桥接方式,还可以使用nat方式)

    PS C:\> new-vmswitch -name "virtual switch" -switchtype nat -natsubnetaddress 172.16.0.1/24

  4. 如果虚拟交换机配置的是nat类型,则需要创建nat对象。

    PS C:\> new-netnat -name containernat -internalipinterfaceaddressprefix "172.16.0.1/24"

  5. 安装操作系统镜像

    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

  6. 然后按照该文档在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)

















本文转自ting2junshui51CTO博客,原文链接: http://blog.51cto.com/ting2junshui/1739751,如需转载请自行联系原作者



优秀的个人博客,低调大师

微信关注我们

原文链接:https://yq.aliyun.com/articles/547194

转载内容版权归作者及来源网站所有!

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。

相关文章

发表评论

资源下载

更多资源
优质分享Android(本站安卓app)

优质分享Android(本站安卓app)

近一个月的开发和优化,本站点的第一个app全新上线。该app采用极致压缩,本体才4.36MB。系统里面做了大量数据访问、缓存优化。方便用户在手机上查看文章。后续会推出HarmonyOS的适配版本。

Apache Tomcat7、8、9(Java Web服务器)

Apache Tomcat7、8、9(Java Web服务器)

Tomcat是Apache 软件基金会(Apache Software Foundation)的Jakarta 项目中的一个核心项目,由Apache、Sun 和其他一些公司及个人共同开发而成。因为Tomcat 技术先进、性能稳定,而且免费,因而深受Java 爱好者的喜爱并得到了部分软件开发商的认可,成为目前比较流行的Web 应用服务器。

Eclipse(集成开发环境)

Eclipse(集成开发环境)

Eclipse 是一个开放源代码的、基于Java的可扩展开发平台。就其本身而言,它只是一个框架和一组服务,用于通过插件组件构建开发环境。幸运的是,Eclipse 附带了一个标准的插件集,包括Java开发工具(Java Development Kit,JDK)。

Sublime Text 一个代码编辑器

Sublime Text 一个代码编辑器

Sublime Text具有漂亮的用户界面和强大的功能,例如代码缩略图,Python的插件,代码段等。还可自定义键绑定,菜单和工具栏。Sublime Text 的主要功能包括:拼写检查,书签,完整的 Python API , Goto 功能,即时项目切换,多选择,多窗口等等。Sublime Text 是一个跨平台的编辑器,同时支持Windows、Linux、Mac OS X等操作系统。