专栏名称: 分布式实验室
最专业的Docker文章,最权威的Docker新闻。关注容器生态圈的发展。
目录
相关文章推荐
zartbot  ·  从AI落地的视角看看Infra的需求 ·  昨天  
zartbot  ·  从AI落地的视角看看Infra的需求 ·  昨天  
51好读  ›  专栏  ›  分布式实验室

在Windows 10上运行Linux及Windows容器

分布式实验室  · 公众号  · 后端  · 2017-02-10 07:47

正文

请到「今天看啥」查看全文


& '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插件,而无需作任何环境上的改动。

并行运转两个容器世界







请到「今天看啥」查看全文