简介与安装
Docker Machine
项目基于 Go
语言实现,Docker 官方提供的一个工具,它可以帮助我们在远程的机器上安装 Docker,或者在虚拟机 host 上直接安装虚拟机并在虚拟机中安装 Docker。我们还可以通过 docker-machine命令来管理这些虚拟机和 Docker。使用的场景应该是比较少的在生产中。
安装方法详见 https://docs.docker.com/machine/install-machine/:
1 | 安装 |
创建本地虚拟主机+安装docker
由于在虚拟机上面做的实验,在虚拟机上面再开启虚拟化,行不通,可以放弃。
如果有环境的话,由于docker machine要使用到virtualbox的驱动,所以必须先安装这个虚拟化工具。
1 | yum update |
安装完成之后需要reboot一下,然后使用/sbin/vboxconfig
来配置。其他设置请参考:https://www.tecmint.com/install-virtualbox-on-redhat-centos-fedora/
完成之后,就可以使用 docker-machine create -d virtualbox test
来创建本地环境的虚拟机,同时会自动安装上docker工具。
在远程主机上面安装docker
部署密钥
由于需要在远程主机上面安装软件,必须要有相应的权限,所以需要配置免密码登陆,就是使用公私钥来登陆了。使用 ssh-keygen -t rsa
来生成密钥,再使用ssh-copy-id把公钥复制到另一台机器上,比如我这台是192.168.137.55,添加完密钥之后,直接ssh + ip
查看是否有成功登陆了。
1 | [root@localhost ~]# ssh-keygen -t rsa |
部署远端docker
完成上述操作之后,再运行:
1 | [root@localhost ~]# docker-machine create -d generic --generic-ip-address 192.168.137.55 remote |
注意,create 命令本是要创建虚拟主机并安装 Docker,因为本例中的目标主机已经存在,所以仅安装 Docker。
-d 是 —driver 的简写形式,主要用来指定使用什么驱动程序来创建目标主机。Docker Machine 支持在云服务器上创建主机,就是靠使用不同的驱动来实现了。本例中使用 generic 就可以了。
remote这个只是一个名字而也。
稍等几分钟,另一台机器上面就会完成docker工具的安装。我们可以通过 Docker Machine 的 ls 命令查看当前可管理的主机列表:
1 | [root@localhost ~]# docker-machine ls |
管理远端的docker
有2个方法。
docker-machine env
运行docker-machine env + name
就会显示出一些指令,其实就是设置环境变量。但实际上并没有执行,只是显示而也,如果要执行,直接运行eval $(docker-machine env remote)
即可。
1 | [root@localhost ~]# docker-machine env remote |
docker-machine ssh
直接ssh即可。
1 | [root@localhost ~]# docker-machine ssh remote |
2个方法,个人还是觉得ssh的方法会比较简单一些。