微软正在为Windows Server的下一个重大更新做准备(查看微软博客最近补充的这篇文章),并且有些新功能对于Docker用户来说是非常令人兴奋的。其中最重要的增强之处就是Docker现在可以使用Hyper-V技术在Windows上运行Linux容器。
在Windows上运行Docker Linux容器需要一个最小的Linux内核和承载容器进程的用户空间。这正是LinuxKit工具包的设计目标:创建可以提供Linux容器功能的安全、精简、可移植的Linux子系统。
我们一直忙于为Windows上的Docker Linux容器提供LinuxKit支持,并有一个工作预览供您尝试。这仍然是一项正在进行的工作,需要通过最近发布的“Windows Server 预览版”或者Windows 10 预览版来体验。
使用LinuxKit在Windows上运行Docker Linux容器
以下教程已经在Windows 10和Windows Server 预览版16278和16281上进行了测试。
请确保在开始之前安装Windows版Docker(Windows 10)或Docker 企业版(Windows Server 预览版)。
安装Docker和LinuxKit
以管理员身份在PowerShell中运行以下命令即可以获取LinuxKit的预览版本:
$progressPreference = 'silentlyContinue'
mkdir "$Env:ProgramFiles\Linux Containers”
Invoke-WebRequest -UseBasicParsing -OutFile linuxkit.zip https://github.com/friism/linuxkit/releases/download/preview-1/linuxkit.zip
Expand-Archive linuxkit.zip -DestinationPath "$Env:ProgramFiles\Linux Containers\."
rm linuxkit.zip
接着获取Docker守护进程的主分支版本,它对Windows上的Linux容器提供了预览支持:
Invoke-WebRequest -UseBasicParsing -OutFile dockerd.exe https://master.dockerproject.org/windows/x86_64/dockerd.exe
启动一个新的Docker守护进程监听一个单独的管道,并使用默认安装中的一个单独的存储位置:
$Env:LCOW_SUPPORTED=1
.\dockerd.exe -D --experimental -H "npipe:////./pipe//docker_lcow" --data-root c:\lcow
尝试一下
运行一个Linux容器:
docker -H "npipe:////./pipe//docker_lcow" run -ti busybox sh
这样Docker就创建了一个最小的虚拟机,它运行着LinuxKit实例并且托管着linux容器!
由于这是一个早期预览,所以存在一些限制,但是基本的Docker操作(比如pull和run)是完全没问题的。
展望未来
Windows Server预览版和Windows上的Linux容器的Docker支持都还处于早期预览模式。在正式发布版中,Windows上的Docker Linux容器将同时改善Windows开发人员和服务器管理员的使用体验。开发人员可以通过在同一个系统上并行运行两个平台的容器来更轻松地构建和测试混合的Windows / Linux Docker应用程序。
喜欢Windows的IT管理员很快就能够通过Windows上的Docker Linux容器轻松运行(大部分)Linux独有的软件,例如HAProxy和Redis。举例来说,Windows上的Docker Linux容器将使得在Windows Server上建立Docker企业版和Universal Control Plane(依赖于某些仅限于Linux的组件)变得更为简单。
我们希望这个基于LinuxKit的演练能够让你开始探索。欢迎反馈!有关一般帮助和入门内部版本,请使用Windows反馈中心(Windows 10)或Windows Server 预览版技术社区。对于Windows上LinuxKit和Docker支持Linux容器的问题,请前往GitHub上的Windows版Docker问题跟踪器。如果你做出了一些很酷的东西,请一定要在推特上告诉我们!
更多资源
下载Docker Windows 10版和Docker Windows Server版
了解有关Docker企业版的更多信息