vmware安装Docker Machine,管理docker主机(centos7)

Docker Machine 可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker。使用 docker-machine 命令,您可以启动,检查,停止和重新启动托管主机,也可以升级 Docker 客户端和守护程序,以及配置 Docker 客户端与您的主机进行通信。

文章目录

    • 一、主机IP环境
    • 二、本地主机150安装docker-machine
    • 三、本地主机150创建本地docker主机(vm150)
    • 四、本地主机150创建docker远程主机(vm160)
    • 五、本地主机150导入docker远程主机(vm170)
    • 六、docker-machine命令
    • 七、docker-machine主机报错原因及解决方法

一、主机IP环境

主机 IP
docker-machine本地主机150 192.168.1.150
docker本地主机150 192.168.1.150
docker远程主机160 192.168.1.160
docker远程主机170 192.168.1.170

二、本地主机150安装docker-machine

1、本地主机150安装Docker-Machine。

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&
mv /tmp/docker-machine /usr/local/bin/docker-machine &&
chmod +x /usr/local/bin/docker-machine

2、本地主机150查看Docker-Machine是否安装成功。

docker-machine version

vmware安装Docker Machine,管理docker主机(centos7)_第1张图片

三、本地主机150创建本地docker主机(vm150)

docker-machine通过ssh连接到docker主机,从网上下载并安装docker工具,需要用root权限来安装。在centos系统下,默认禁止root用户通过ssh登录系统,因此需要先配置root允许ssh登录系统并免交互登录或指定私钥登录。

1、本地主机150创建密钥对,输入命令ssh-keygen,按ENTER键3次,创建完成。

ssh-keygen

vmware安装Docker Machine,管理docker主机(centos7)_第2张图片
2、复制本地主机150私钥至主机150文件内/root/.ssh/
authorized_keys,运行命令,输入主机150的root账户密码。

ssh-copy-id  [email protected]

vmware安装Docker Machine,管理docker主机(centos7)_第3张图片
3、本地主机150修改配置文件/etc/ssh/sshd_config,允许其他主机使用root登录系统。

 vi  /etc/ssh/sshd_config
PermitRootLogin yes    #修改此项为允许root远程登录

4、本地主机150开放防火墙端口2376。

firewall-cmd --zone=public --add-port=2376/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --query-port=2376/tcp 

5、本地主机150使用如下命令创建docker主机vm150,指定–driver generic,主机的IP地址以及授权连接到主机的SSH私钥的路径,自动下载安装最新版docker。 (使用SSH创建计算机,指定–driver generic)

docker-machine create --driver generic --generic-ip-address=192.168.1.150 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm150

vmware安装Docker Machine,管理docker主机(centos7)_第4张图片
5、查看vm150的ip。

docker-machine ip vm150

在这里插入图片描述

6、generic driver不支持启动和停止vm150。

 docker-machine stop vm150
 docker-machine kill  vm150

vmware安装Docker Machine,管理docker主机(centos7)_第5张图片
7、重启vm150,计算机名称改变为vm150。

docker-machine restart vm150

vmware安装Docker Machine,管理docker主机(centos7)_第6张图片

8、查看docker是否安装成功。

docker version

vmware安装Docker Machine,管理docker主机(centos7)_第7张图片

9、列出可用的机器。

docker-machine ls

10、创建并运行容器cent150,查看容器运行状态,进入容器,查看ip,退出容器cent150。

docker  run  -itd --name cent150   centos:centos7.7.1908    /bin/bash
docker exec -it cent150   /bin/bash
cat    /etc/hosts
exit

vmware安装Docker Machine,管理docker主机(centos7)_第8张图片

四、本地主机150创建docker远程主机(vm160)

docker-machine通过ssh连接到docker主机,从网上下载并安装docker工具,需要用root权限来安装。在centos系统下,默认禁止root用户通过ssh登录系统,因此需要先配置root允许ssh登录系统并免交互登录或指定私钥登录。

1、本地主机150创建密钥对,输入命令ssh-keygen,按ENTER键3次,创建完成。(若已创建密钥对,则本步骤可省略)

ssh-keygen

2、复制本地主机150私钥至远程主机160,运行命令,输入远程主机160的root账户密码。

ssh-copy-id  [email protected]

3、远程主机160修改配置文件/etc/ssh/sshd_config,允许其他主机使用root登录系统。

 vi  /etc/ssh/sshd_config
PermitRootLogin yes    #修改此项为允许root远程登录

4、远程主机160开放防火墙端口2376。

firewall-cmd --zone=public --add-port=2376/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --query-port=2376/tcp 

5、本地主机150使用如下命令创建远程docker主机vm160,指定–driver generic,远程主机的IP地址以及授权连接到远程主机的SSH私钥的路径,自动下载安装最新版docker。 (使用的是Machine不直接支持的驱动程序,或者要导入现有主机以允许Docker Machine管理,则指定–driver为generic很有用。)

docker-machine create --driver generic --generic-ip-address=192.168.1.160 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm160

5、查看远程vm160的ip。

docker-machine ip vm160

6、generic driver不支持启动和停止vm160。

 docker-machine stop vm160
 docker-machine kill  vm160

7、重启vm160,远程计算机主机名称将变为vm160。

docker-machine restart vm160

8、从本地主机150远程登录vm160。

docker-machine ssh vm160

vmware安装Docker Machine,管理docker主机(centos7)_第9张图片
9、查看docker是否安装成功。

docker version

10、创建并运行容器cent160,查看容器运行状态,进入容器,查看ip,退出容器cent160。

docker  run  -itd --name cent160   centos:centos7.7.1908    /bin/bash
docker  ps
docker exec -it cent160   /bin/bash
cat    /etc/hosts
exit

vmware安装Docker Machine,管理docker主机(centos7)_第10张图片

五、本地主机150导入docker远程主机(vm170)

1、远程主机170安装最新版docker。
参考博客:https://blog.csdn.net/renfeigui0/article/details/103314065

2、创建并运行容器cent170-1、cent170-2、cent170-3,查看容器运行状态。

docker  run  -itd --name cent170-1   centos:centos7.7.1908    /bin/bash
docker  run  -itd --name cent170-2   centos:centos7.7.1908    /bin/bash
docker  run  -itd --name cent170-3   centos:centos7.7.1908    /bin/bash
docker  ps

vmware安装Docker Machine,管理docker主机(centos7)_第11张图片

3、本地主机150创建密钥对,输入命令ssh-keygen,按ENTER键3次,创建完成。(若已创建密钥对,则本步骤可省略)

ssh-keygen

4、复制本地主机150私钥至远程主机170,运行命令,输入远程主机170的root账户密码。

ssh-copy-id  [email protected]

5、远程主机170修改配置文件/etc/ssh/sshd_config,允许其他主机使用root登录系统。

 vi  /etc/ssh/sshd_config
PermitRootLogin yes    #修改此项为允许root远程登录

6、远程主机170开放防火墙端口2376。

firewall-cmd --zone=public --add-port=2376/tcp --permanent
firewall-cmd --reload
firewall-cmd --zone=public --query-port=2376/tcp 

7、本地主机150使用如下命令创建远程docker主机vm170,指定–driver generic,远程主机的IP地址以及授权连接到远程主机的SSH私钥的路径,自动下载安装最新版docker。 (使用的是Machine不直接支持的驱动程序,或者要导入现有主机以允许Docker Machine管理,则指定–driver为generic很有用。)

docker-machine create --driver generic --generic-ip-address=192.168.1.170 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm170

8、查看vm170的ip。

docker-machine ip vm170

9、generic driver不支持启动和停止vm170。

 docker-machine stop  vm170
 docker-machine kill  vm170

10、重启vm170。

docker-machine restart vm170

11、从本地主机150远程登录vm170,查看容器运行状态和ip。

docker-machine ssh vm170
docker  ps
docker exec -it cent170-3   /bin/bash
cat    /etc/hosts
exit
exit

vmware安装Docker Machine,管理docker主机(centos7)_第12张图片

六、docker-machine命令

docker-machine命令官方文档:https://docs.docker.com/machine/reference/

docker-machine命令 参数说明
docker-machine active 查看Docker主机活动状态。
docker-machine ls 查看Docker主机活动状态。
echo $DOCKER_HOST 查看Docker主机活动状态。
docker-machine config vm150 查看当前激活状态Docker主机vm150的连接信息。
docker-machine create --driver generic --generic-ip-address=192.168.1.170 --generic-ssh-key ~/.ssh/id_rsa --generic-ssh-user=root vm170 创建Docker主机vm170,指定驱动为generic,指定ip为192.168.1.170,指定登录方式为私钥免密登录,指定登录账户为root。
docker-machine env vm150 显示主机vm150的环境变量。
docker-machine inspect vm150 以 json格式输出指定Docker主机vm150的详细信息。
docker-machine ip vm150 获取指定Docker主机vm150的ip地址。
docker-machine kill vm150 直接杀死指定的Docker主机vm150。
docker-machine ls 列出所有的管理主机。
docker-machine provision vm150 重新配置指定主机vm150。
docker-machine regenerate-certs vm150 为主机vm150 重新生成 TLS 信息。
docker-machine restart vm150 重启指定的主机vm150。
docker-machine rm vm150 删除Docker主机vm150,对应的虚拟机也会被删除。
docker-machine ssh vm150 通过SSH连接到主机vm150 上,执行命令。
docker-machine scp dev:/home/docker/foo.txt /root/foo.txt 在Docker主机之间以及Docker主机和本地主机之间通过scp远程复制数据。
docker-machine mount vm160:/home/docker/foo foo 使用SSHFS将本地计算机上的目录安装到容器中,在本地目录中所做的任何更改也将反映在容器中。
docker-machine start vm150 启动一个指定的Docker主机vm150,驱动generic时不支持。
docker-machine status vm150 获取指定Docker主机vm150的状态(状态包括:Running、Paused、Saved、Stopped、Stopping、Starting、Error等)。
docker-machine stop vm150 停止Docker主机vm150,驱动generic时不支持。
docker-machine upgrade vm150 将一个指定主机vm150的Docker版本更新为最新。
docker-machine url vm150 获取指定Docker主机vm150的监听URL。
docker-machine version 显示 Docker Machine 的版本或者主机 Docker 版本。
docker-machine help 显示帮助信息。

七、docker-machine主机报错原因及解决方法

1、报错"Error with pre-create check: “SSH key does not exist: “/root/.ssh/id_rsa””"原因:未复制私钥至远程主机。
在这里插入图片描述

2、报错"Error creating machine: Error checking the host: Error checking and/or regenerating the certs: There was an error validating certificates for host “192.168.1.160:2376”: dial tcp 192.168.1.160:2376: connect: no route to host
You can attempt to regenerate them using ‘docker-machine regenerate-certs [name]’.
Be advised that this will trigger a Docker daemon restart which might stop running containers.
"原因:远程主机未开放防火墙端口2376。

vmware安装Docker Machine,管理docker主机(centos7)_第13张图片

3、查看主机状态,报错"Unable to query docker version: Get https://192.168.1.160:2376/v1.15/version: dial tcp 192.168.1.160:2376: connect: no route to host"原因:远程主机未开放防火墙端口2376。
在这里插入图片描述

4、查看主机状态,报错"Unknown Unable to query docker version: Cannot connect to the docker engine endpoint"原因:远程主机未开放防火墙端口2376。
在这里插入图片描述

你可能感兴趣的:(docker)