提示:docker 已经在windows7.1和windows 8上通过测试,当然它也可以在低版本的windows上使用。但是你的处理器必须支持硬件虚拟化。
docker 引擎使用的是linux内核特性,所以我们需要在 windows 上使用一个轻量级的虚拟机 (vm) 来运行 docker。我们使用 windows的docker客户端来控制 docker 虚拟化引擎的构建、运行和管理 。
为了简化这个过程,我们设计了一个叫 boot2docker 的应用程序,你可以通过它来安装虚拟机和运行 docker。
虽然你使用的是 windows 的 docker 客户端,但是 docker 引擎容器依然是运行在 linux 宿主主机上(现在是通过virtual box)。直到我们开发了 windows 版本的 docker 引擎,你只需要在你的 windows 主机上启动一个 linux 容器。
安装
- 下载最新版本的docker for windows installer
- 运行安装文件,它将会安装virtualbox、msys-git boot2docker linux镜像和boot2docker的管理工具。
- 从桌面上或者program files中找到boot2docker for windows,运行
boot2docker start
脚本。这个脚本会要求你输入 ssh 密钥密码 – 可以简单点(但是起码看起来比较安全),然后只需要按[enter]按钮即可。 boot2docker start
将启动一个 unix shell 来配置和管理运行在虚拟主机中的 docker,运行docker version
来查看它是否正常工作。
运行 docker
注意:如果你使用的是一个远程的 docker 进程,像
boot2docker
,你就不需要像前边的文档实例中那样在输入 docker 命令之前输入sudo
。
boot2docker start 将会自动启动一个 shell 命令框并配置好环境变量,以便您可以马上使用 docker :
让我们尝试运行 hello-world
例子。 运行:
$ docker run hello-world
这将会下载一个非常小的 hello-world
镜像,并且打印出 hello from docker.
信息。
使用 windows 的命令行(cmd.exe) 来管理运行 docker
启动一个 windows 命令行(cmd.exe).
运行 boot2docker 命令,这需要你的 windows path环境变量中包含了 ssh.exe
。因此我们需要将安装的 git 的 bin 目录 (其中包含了 ssh.exe) 配置到我们的 %path%
环境变量中,运行如下命令:
set path=%path%;"c:\program files (x86)\git\bin"
现在,我们可以运行 boot2docker start
命令来启动 boot2docker 虚拟机。(如果有虚拟主机不存在的错误提示,你需要运行 boot2docker init
命令)。复制上边的指令到 cmd.exe 来设置你的 windows 控制台的环境变量,然后你就可以运行 docker 命令了,譬如 docker ps
:
powershell 中使用 docker
启动 powershell,你需要将 ssh.exe
添加到你的 path 中。
$env:path = "${env:path};c:\program files (x86)\git\bin"
之后,运行 boot2docker start
命令行,它会打印出 powershell 命令,这些命令是用来设置环境变量来连接运行在虚拟机中 docker 的。运行这些命令,然后你就可以运行 docker 命令了,譬如 docker ps
:
提示:你可以使用
boot2docker shellinit | invoke-expression
来设置你的环境变量来代替复制粘贴 powershell 命令。
进一步的细节
boot2docker 管理工具提供了如下几个命令:
$ boot2docker
usage: boot2docker.exe [] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|shellinit|delete|download|upgrade|version} []
升级
- 下载最新的 docker for windows installer
- 运行安装程序,这将升级 boot2docker 管理工具
- 打开终端输入如下的命令来升级你现有的虚拟机: $ boot2docker stop $ boot2docker download $ boot2docker start
容器端口重定向
boot2docker的默认用户是 docker
密码是 tcuser
。
最新版本的 boot2docker 可以设置网络适配器来给容器提供端口访问。
如你运行一个暴露内部端口的容器
docker run --rm -i -t -p 80:80 nginx
当你需要使用一个ip地址来访问 nginx 服务器,你可以使用如下命令来查看 ip。
$ boot2docker ip
通常情况下,是192.168.59.103,但是它可以通过 virtualbox 的 dhcp 来改变。
更多细节信息,请查看boot2docker site
使用putty登陆来代替cmd命令行
boot2docker使用 %homepath%\.ssh
目录来生成你的共有和私有密钥。同样登陆的时候你也需要使用这个目录下的私有密钥。
这个私有密钥需要转换成 putty 所需要的格式。
你可以使用 puttygen来生成,具体操作如下:
- 打开
puttygen.exe
找到(”file”->”load”)按钮来加载 %homepath%.ssh\id_boot2docker 私有密钥文件。 - 点击
"save private key"
按钮。 - 在putty中使用刚才保存的文件来登陆 [email protected]:2022
参考
如果你已经运行 docker 主机或者你不希望使用 boot2docker
安装,你可以安装 docker.exe 使用非官方的包管理器 chocolately。了解更多新,请查看 docker package on chocolatey。