Docker Machine

Posted royal6

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Docker Machine相关的知识,希望对你有一定的参考价值。

Docker Machine

简介

Docker Machine 是一种可以让您在虚拟主机上安装 Docker 的工具,并可以使用 docker-machine 命令来管理主机

Docker Machine 也可以集中管理所有的 docker 主机,比如快速的给 100 台服务器安装上 docker

Docker Machine 管理的虚拟主机可以是机上的,也可以是云供应商,如阿里云,腾讯云,AWS,或 DigitalOcean

使用 docker-machine 命令,您可以启动,检查,停止和重新启动托管主机,也可以升级 Docker 客户端和守护程序,以及配置 Docker 客户端与您的主机进行通信

技术图片

安装

安装 Docker Machine 之前你需要先安装 Docker

Linux 安装命令

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

Windows 安装命令

可以使用Git BASH,并输入以下命令:

base=https://github.com/docker/machine/releases/download/v0.16.0 &&
  mkdir -p "$HOME/bin" &&
  curl -L $base/docker-machine-Windows-x86_64.exe > "$HOME/bin/docker-machine.exe" &&
  chmod +x "$HOME/bin/docker-machine.exe"

查看是否安装成功:

docker-machine version

使用

通过 virtualbox 来介绍 docker-machine 的使用方法。其他云服务商操作与此基本一致。具体可以参考每家服务商的指导文档。

1、列出可用的机器

可以看到目前只有这里默认的 default 虚拟机

docker-machine ls

2、创建机器

创建一台名为 test 的机器。

docker-machine create --driver virtualbox test
  • --driver:指定用来创建机器的驱动类型,这里是 virtualbox。

3、查看机器的 ip

docker-machine ip test

4、停止机器

docker-machine stop test

5、启动机器

docker-machine start test

6、进入机器

docker-machine ssh test

docker-machine 命令参数说明

  • docker-machine active:查看当前激活状态的 Docker 主机

  • config:查看当前激活状态 Docker 主机的连接信息

  • creat:创建 Docker 主机

  • env:显示连接到某个主机需要的环境变量

  • inspect: 以 json 格式输出指定Docker的详细信息

  • ip: 获取指定 Docker 主机的地址

  • kill: 直接杀死指定的 Docker 主机

  • ls: 列出所有的管理主机

  • provision: 重新配置指定主机

  • regenerate-certs: 为某个主机重新生成 TLS 信息

  • restart: 重启指定的主机

  • rm: 删除某台 Docker 主机,对应的虚拟机也会被删除

  • ssh: 通过 SSH 连接到主机上,执行命令

  • scp: 在 Docker 主机之间以及 Docker 主机和本地主机之间通过 scp 远程复制数据

  • mount: 使用 SSHFS 从计算机装载或卸载目录

  • start: 启动一个指定的 Docker 主机,如果对象是个虚拟机,该虚拟机将被启动

  • status: 获取指定 Docker 主机的状态(包括:Running、Paused、Saved、Stopped、Stopping、Starting、Error)等

  • stop: 停止一个指定的 Docker 主机

  • upgrade: 将一个指定主机的 Docker 版本更新为最新

  • url: 获取指定 Docker 主机的监听 URL

  • version: 显示 Docker Machine 的版本或者主机 Docker 版本

  • help: 显示帮助信息

  • --driver generic:docker machine支持多种driver,driver表示通过何种方式创建虚拟机,比如openstack、virtualbox,generic表示通用

  • --generic-ip-address=172.20.10.2 :远程虚拟机的IP地址,需要设置driver为generic

  • --generic-ssh-key ~/.ssh/id_rsa:ssh免密使用的公钥,需要设置driver为generic

    宿主机通过ssh访问虚拟机免密设置

    docker machine在虚拟机上安装docker时需要ssh能免密访问虚拟机

    #在Git BASH中执行以下指令:
    #生成秘钥对,一直点回车
    ssh-keygen
    
    #将公钥传输给虚拟机,需要输入root密码
    ssh-copy-id root@172.20.10.2
    ssh-copy id root@172.20.10.3
    ssh-copy-id root@172.20.10.4
    

    具体driver generic参数说明:https://docs.docker.com/machine/drivers/generic/

注意:默认情况下,ubuntu不允许root用户通过ssh远程访问。分别在每台虚拟机上修改/etc/ssh/sshd_config,将PermitRootLogin的值改成yes,再执行/etc/init.d/ssh restart,这样root用户可以通过ssh远程访问虚拟机了

参数参考:https://www.runoob.com/docker/docker-machine.html

官方详细参数说明:https://docs.docker.com/machine/drivers/

以上是关于Docker Machine的主要内容,如果未能解决你的问题,请参考以下文章

Docker安装Machine 显示拒绝连接的解决办法

docker machine

docker-machine 远程安装docker

Docker - docker machine

Centos7安装docker-machine

Docker machine 多主机管理