在本文中,将从开发者的角度出发,探讨如何在Docker DevCloud虚拟机上配置和使用Docker工具。本指南将指导完成从安装Cygwin和Docker工具到安全连接Docker客户端到虚拟机的整个过程。
在开始之前,请确保已经拥有Docker DevCloud虚拟机的管理员访问权限。如果遇到sudo权限问题,可以使用以下命令以root用户身份登录:
su -
或者使用密码abc123或Cloud123来访问root权限。
首先,需要下载Cygwin。请注意,可以使用以下命令以非管理员账户安装Cygwin,仅供个人使用:
setup*.exe --no-admin
接下来,下载Docker工具。请从企业工件仓库下载docker-1.8.1(当前最新版本)。
在安装Cygwin时,请选择“从互联网安装”。使用默认目录,但选择“所有用户”。使用默认软件包,并选择“使用系统代理设置”。选择顶级URL作为下载站点。在“选择软件包”时,搜索并选择openssh、curl和socat,并选择它们的二进制文件。点击“下一步”完成安装。
在安装完成后,选择创建桌面图标的选项。完成后,桌面上应该会出现Cygwin终端的快捷方式。
将下载的文件重命名为Docker.exe,并将其放置在文件夹中(不要放在c:\program files或c:\program files(x86)中)。更新path环境变量以引用Docker.exe所在的文件夹:
Compute Properties, Advanced System Settings, Environment Variable Button, add to User Path Variable
在命令提示符下输入以下命令,应该能够看到来自客户端的响应,但没有服务器/主机响应:
docker version
为了安全地访问Docker API,请参考以下步骤:
启动Cygwin终端,并输入以下命令生成SSH密钥:
ssh-keygen
请保留默认位置和密码。然后,请BYO Docker Devcloud VM管理员将公钥添加到authorized_keys2文件中(如果管理员不熟悉此操作,底部有相关说明)。
一旦VM管理员更新了authorized_keys2,可以使用以下两个命令从Cygwin验证密钥是否有效:
MYBYO=vmname
ssh root@$MYBYO id
如果成功,应该收到类似于以下响应:
uid=0(root) gid=0(root) groups=0(root) context=unconfined_u:unconfined_r:unconfined_t:s0-s0:c0.c1023
在Cygwin中创建一个名为docker-tunnel的脚本,并输入以下内容:
cat > docker-tunnel
粘贴以下文本(来自安全访问Docker指令的第4步):
#!/bin/bash
if [ "$1" ];
then
echo "Usage: $0 hostname"
else
socat "TCP-LISTEN:2375,reuseaddr,fork,range=127.0.0.1/32" "EXEC:'ssh -kTax root@$1 socat STDIO UNIX-CONNECT:/var/run/docker.sock'" &
sleep 1
fi
ctr-c to exit edit
chmod +x ./docker-tunnel
测试连接:
./docker-tunnel $MYBYO
打开浏览器,访问以下地址,应该能够下载JSON文件:
http://127.0.0.1:2375/version
JSON文件内容应该类似于以下:
{
"Os": "linux",
"Version": "1.10.3",
"Arch": "amd64",
"ApiVersion": "1.22",
"GitCommit": "7ffc8ee-unsupported",
"KernelVersion": "3.10.0-327.36.3.el7.x86_64",
"BuildTime": "2016-06-17T15:27:21.818932147-04:00",
"PkgVersion": "docker-common-1.10.3-44.el7.x86_64",
"GoVersion": "go1.4.2"
}
在Cygwin中输入以下命令:
export DOCKER_HOST=tcp://127.0.0.1:2375
退出Cygwin并打开命令提示符,输入:
docker version
现在应该能够看到主机部分和客户端部分都已完成。
请参考以下步骤登录VM:
ssh -l soeid vm-computer-name
如果这是第一次登录,可能会遇到有关未设置家目录的错误。
更改目录到/etc/ssh/keys/root,通过输入以下命令查看authorized_keys2的内容:
cat authorized_keys2
使用vim编辑authorized_keys2:
vi authorized_keys2
编辑文件时,请参考Linux初学者指南中的vi编辑文件指南。