是 Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。下面是来自 Docker Machine 官方文档的一张图,很形象哦!
。
文件下载到本地就可以了。
是个开源项目,你可以选择安装不同的版本,或者是自行编译。下图为笔者安装之后显示的版本信息:
登录上去通过 apt-get 命令安装呢?当然不需要,通过 docker-machine 命令我们可以轻松的在远程主机上安装 Docker。
用户并加入sudo 组用户设置 sudo 操作不需要输入密码用户的 ssh public key 添加到目标主机上
添加一个名为 nick 的用户并加入 sudo 组:
用户的 ssh public key 添加到目标主机上:
支持在云服务器上创建主机,就是靠使用不同的驱动来实现了。本例中使用 generic 就可以了。接下来以 --generic 开头的三个参数主要是指定操作的目标主机和使用的账户。最后一个参数 krdevdb 是虚拟机的名称,Docker Machine 会用它来设置目标主机的名称。
显示了安装的 Docker 版本:v17.05.0-ce。后执行 eval $(docker-machine env krdevdb) 命令,就可以通过本地的客户端操作远程主机上的 Docker daemon 了。执行 docker version 命令看看:
用户名和密码。
cpu-count=1 \cpu、内存和磁盘资源。
名称。
显示为 vmwarevsphere。
文件 docker 来启动服务器端 daemon 和客户端的。在近期的版本中,服务端的可执行文件已经和客户端的可执行文件分离开了。查看 /usr/bin 目录下的可执行文件:
文件。而我们平时执行本机 docker 任务则主要通过 docker 这个客户端命令给本机的服务器端发送任务。
输出的内容可以作为命令来设置一些 Docker 客户端使用的环境变量,从而让本机的 Docker 客户端可以与远程的 Docker 服务器通信。按照上面的提示执行命令:
关闭和重启远程的 Docker daemon。这里的情况稍微复杂一些,只有支持这些命令的驱动才能完成相关的操作。比如,我们分别关闭 krdevdb 和 testvm:
提示 generic 驱动不支持 stop 命令。而 testvm 是通过 vmwarevsphere 驱动安装的,所以成功的执行了 stop。
支持是必不可少的!Docker Machine 当然也尽职尽责的完成了任务:
提示你输入密码,当然更不会让你去配置 SSH 秘钥什么的,因为 Docker Machine 私下全把脏活累活干完了。
内容我们也可以看到,Docker Machine 确实为我们使用和管理 Docker 带来了很多的便利。至于有待提高的方面,现在 Docker Machine 会安装最新版本的 Docker,笔者觉得如果能够支持指定安装 Docker 的版本就好了!