docker三剑客之docker-machine
Comment前言
你可以用docker machine来做什么?
1,在mac和windows平台上安装和运行docker
2,提供和管理多个远程docker主机
3,提供swarm集群管理
安装
安装很简单,直接从github下载编译好的二进制文件即可,也可以参考官网详细介绍
下载地址:https://github.com/docker/machine/releases
Linux
1 | curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/tmp/docker-machine && |
Mac
mac客户端已经包含了machine,其实无需单独安装。
1 | curl -L https://github.com/docker/machine/releases/download/v0.16.2/docker-machine-`uname -s`-`uname -m` >/usr/local/bin/docker-machine && |
查看machine安装版本,可以正常输出版本信息即可。
1 | docker-machine -v |
使用
1,创建主机
1,创建主机节点,不同的服务器,可能支持的驱动不同,所以要按需处理
Centos
直接选择virtualbox类型的驱动来创建主机:
1 | docker-machine create -d virtualbox test |
ECS-Centos
需要使用阿里云提供的驱动ECS Driver来创建, 参见:驱动下载和安装文档
安装驱动:
1 | mkdir docker-machine |
使用阿里云驱动aliyunecs,创建创建主机时,aliyunecs-access-key-id 和 aliyunecs-access-key-secret 是必填参数,可以直接在aliyunecs后追加,也可以设置到环境变量当中。
设置环境变量:
1 | export ECS_ACCESS_KEY_ID='<Your access key ID>' |
创建主机:
1 | docker-machine create -d aliyunecs testali |
命令参数参考: 点我查看命令详细介绍
Mac
使用xhyve驱动,初次使用得先安装:
1 | brew install docker-machine-driver-xhyve |
如果mac上没有装brew工具,可以通过下面的命令安装brew:
1 | ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)" |
常用参数(更多命令查看:“docker-machine create -d xhyve -help”):
1 | 配置docker主机镜像文件地址:--xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso |
创建主机:
1 | docker-machine create -d xhyve --xhyve-boot2docker-url ~/.docker/machine/cache/boot2docker.iso --engine-registry-mirror https://registry.docker-cn.com test |
2,查询主机
1 | docker-machine ls |
输出如下即可:
1 | NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS |
3,连接主机
尝试登录ssh连接到docker-machine主机:
1 | docker-machine ssh test |
a,查看主机的docker版本
1 | docker -v |
b,尝试运行容器,以portainer为例
1 | docker run -d -p 9000:9000 --restart always -v /var/run/docker.sock:/var/run/docker.sock -v /opt/portainer:/data portainer/portainer |
c,先使用命令:exit 退出主机,然后查看IP,并尝试在主机浏览器上访问启动的portainer容器
1 | docker-machine ip test |
浏览器访问:http://ip:9000 ,能正常访问即可!
报错处理
做什么事情不遇到些错误是不可能的,这次是踩了不少坑,记录下来,方便下次审阅。
错误1:
我是在阿里云ECS上使用的时候提示的错误:
1 | _VBoxManage not found. Make sure VirtualBox is installed and VBoxManage is in the path_ |
解决办法:
配置安装源,安装VirtualBox
1 | vi /etc/yum.repos.d/virtualbox.repo |
内容如下:
1 | [virtualbox] |
使用命令查看VirtualBox版本,选择指定版本进行安装
1 | yum search VirtualBox |
输出:
1 | _=========================== N/S matched: VirtualBox ============================_ |
安装命令:
1 | yum install -y VirtualBox-5.2 |
错误2:
在执行命令“sudo /sbin/vboxconfig”时,提示如下:
1 | _This system is currently not set up to build kernel modules. |
解决方法:
1 | yum update kernel -y |
重启服务器:
1 | init 6 |
错误3:
在执行命令“docker-machine create -d virtualbox test”时,提示错误:
1 | _Running pre-create checks... |
解决方法:
阿里云ECS不支持,无法开启,可以更换为阿里云提供的驱动aliyunecs
错误4:
在执行命令“docker-machine create -d aliyunecs testali”时,提示错误:
1 | Driver "aliyunecs" not found. |
解决方法:
找不到对应名称的文件,所以,在拷贝到/usr/local/bin目录之前,先修改文件名称,去掉.linux-amd64,如下:
1 | docker-machine-driver-aliyunecs.linux-amd64 >> docker-machine-driver-aliyunecs |
错误5:
执行创建主机的时候提示:
1 | Error setting machine configuration from flags provided: testali | aliyunecs driver |
解决方法:
aliyunecs-access-key-id和aliyunecs-access-key-secret是必填参数,可以直接在aliyunecs后追加,也可以设置到环境变量当中
- 本文作者:沙果栗子本文链接:https://32e.co/2018/09/16/docker-docker-machine/版权声明:本博客所有文章除特别声明外,均采用 CC BY-NC-SA 3.0 CN 许可协议。转载请注明出处!