在Windows 10上运行Linux及Windows容器 8090安适门户
【编者的话】DockerCon 2016上Docker官方颁布了Docker for Windows的果然测试版本,在这一版本里,添加了对在Windows 10上运行Windows容器(包孕nanoserver和servercore)、Linux容器以及两者并存的撑持,本文作者就这一话题为我们展示了一些具体的实例操纵并进一步分析了背后的运行机制。
在西雅图举办的DockerCon 2016上,Docker官方颁布了Docker Windows的果然测试版本。在这一版本里,你能够以一种非常简便的方法在安置了Hyper-V的Windows 10专业版上通过Docker运行Linux容器。在一段时间内这里会同时存在一个不变版本以及一个测试版本渠道以获取新的版本。
并且,微软已经将容器成果添加到了Windows10的年度更新补丁里。通过一些安置法式,你便能在你的Windows10机器上运行Windows Hyper-V容器。
但是这里面可能存在点小疑问,那等于这两种安置方法对应启动的是哪类容器。而且,在不做任何调解的情况下你将无法并排运行两个Docker引擎。
由于两个安置版本使用的是同一个默认的定名通道//./pipe/docker_engine,这会导致此中的一个引擎启动掉败。
统领一切的Beta 26从Docker Windows Beta 26测试版本起,这里有一个更简单的要领来解决这个矛盾。你只需要通过MSI安置器装上Docker Windows版即可。在Docker的托盘图标上会有一个新的菜单选项撑持在Linux及Windows容器间切换。
正如你在视频里所看到的那样,你不用再通过变动环境变量或是操作Docker客户真个-H参数来和其他的Docker引擎通信。
如果你下载了Docker Windows测试版或是你在安置过程中切换到了测试频道,那么不妨事亲身体验一下。
如果你之前还没有激活容器成果的话该安置器将会帮你激活它。为了添加这项特性,需要重启一次才华生效。
此刻你可以轻松地通过点击托盘图标里的菜单栏来完成切换。
这里也供给了一个命令行工具来切换引擎。你可以打开一个PowerShell窗口然后键入:
& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon这样它便完成了从Linux切换到Windows,反之亦然。注意凭据上面展示的那样键入参数,它是巨细写敏感的。
用代办代理来得救但是,如何才华做到切换事情进行过程中无需Docker客户端改用其他的定名通道或是套接字呢?
答案等于,Docker会运行一个代办代理进程 com.docker.proxy.exe,它会监听默认的定名通道//./pipe/docker_engine。
如果你是从Linux切换到Windows,那么Windows Docker引擎dockerd.exe将会启动并监听在此外的定名通道//./pipe/docker_engine_windows,然后倡议一个新的代办代理进程重定向到它。
探寻素质为了探寻从Linux切换到Windows容器的过程中究竟产生了什么,我安置了sysinternals进程监控工具。通过进程树成果,你可以看到一个时间线,每个已启动或者已退出的进程城市有对应的绿色条。
下面这张截图展示了切换前后的进程情况。概略在绿色条的中间部分我就已经完成了切换。
和MobyLinuxVM通信的com.docker.proxy.exe(列内外的dockerd.exe),正如深绿色条高亮展示的那样已然退出。
dockerd.exe,即Windows Docker引擎启动了,并且它还倡议了一个新的和Windows Docker引擎通信的com.docker.proxy.exe(dockerd.exe下面)。
因此,在切换后你仍然可以用docker.exe客户端或者是集成在你喜爱的编纂器或IDE里的Docker插件,而无需作任何环境上的窜改。
并行运转两个容器世界代办代理进程只是切换了连接到的Docker引擎而已。在这样一个切换行动完成后实际上Linux和Windows两个Docker引擎均在运行。
运行一个Linux Web处事器在体验之前我们首先得切换回Linux容器。此刻我们可以在80端口上运行默认的nginx web容器:
docker run -p 80:80 -d nginx然后再切换到Windows容器:
& 'C:\Program Files\Docker\Docker\DockerCli.exe' -SwitchDaemon此刻,让我们跑一些Windows容器吧。但是首先我们还得尝尝看Linux容器是否仍然还在运行,并且处事是否是可以访谒的:
start通过这个start命令你可以打开Edge浏览器访谒一个运行在Linux容器里的nginx自带的欢迎页面。
是的,这个Linux容器一直在跑着。
构建一个Windows Web容器温馨提示: 本文由杰米博客推荐,转载请保留链接: https://www.jmwww.net/file/pc/13080.html