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 [<options>] {help|init|up|ssh|save|down|poweroff|reset|restart|config|status|info|ip|shellinit|delete|download|upgrade|version} [<args>]
升级
- 下载最新的 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中使用刚才保存的文件来登陆 docker@127.0.0.1:2022
参考
如果你已经运行 Docker 主机或者你不希望使用 Boot2docker
安装,你可以安装 docker.exe 使用非官方的包管理器 Chocolately。了解更多新,请查看 Docker package on Chocolatey。
欢迎来到这里!
我们正在构建一个小众社区,大家在这里相互信任,以平等 • 自由 • 奔放的价值观进行分享交流。最终,希望大家能够找到与自己志同道合的伙伴,共同成长。
注册 关于