Docker三剑客之Machine

Docker三剑客之Machine一 Machine 的基本概念和流程 Docker Machine 是一个用于配置和管理带有 Docker Engine 主机的工具 它允许你在虚拟宿主机上安装 Docker 并使用 docker machine 命令管理这个宿主机 可以使用 Docke

欢迎大家来到IT世界,在知识的湖畔探索吧!

一、Machine 的基本概念和流程

Docker Machine 是一个用于配置和管理带有Docker Engine主机的工具,它允许你在虚拟宿主机上安装Docker,并使用docker-machine命令管理这个宿主机,可以使用Docker Machine在本地的MAC或者windows box、公司网络,数据中心或者AWS这样的云提供商上创建docker。简单说,一个 Docker Machine 就是一个 Docker host 主机和经过配置的 Docker client 的结合体。其作用就是快速帮助我们搭建 Docker 主机环境

Docker Machine 的架构如图所示:

Docker三剑客之Machine



欢迎大家来到IT世界,在知识的湖畔探索吧!


1.1、Machine 的基本流程

  • Docker Machine 首先会创建一个虚拟机并在其上创建一个 Docker host,然后使用Docker client 和 Docker host 通信,从而在 Docker host 上创建镜像,启动容器。
  • Docker Machine 创建虚拟机的时候需要制定相应的驱动,目前支持本机的驱动有 VirtualBox 驱动VMware 驱动及 Windows 下的 Hyper-V 驱动。除此之外,Machine 还支持云主机的创建。只要开发了符合框架规范的驱动,Docker Machine 就可以支持相应的平台。

1.2、为什么需要使用它?

  • Docker Machine 使您可以在各种linux上配置远程Docker主机。
  • Machine 运行您在较旧的Mac或Windows系统上运行Docker。

1.3、Docker Enine 和Docker Machine有什么区别?

当人们说“Docker”时,他们通常指的是Docker Engine,它是由 docker CLI,REST API,docker daemon 组成。

Docker三剑客之Machine

Docker Machine是一个用于配置和管理Dockerized主机(带有Docker Engine的主机)的工具。

Docker三剑客之Machine

1.4、环境准备

client:192.168.0.110 centos8 host1:192.168.0.111 centos8 host2:192.168.0.112 centos8

欢迎大家来到IT世界,在知识的湖畔探索吧!

二、安装docker-machine(在client机器上安装)

1)首先下载二进制文件

欢迎大家来到IT世界,在知识的湖畔探索吧!$ wget https://github.com/docker/machine/releases/download/v0.16.0/docker-machine-Linux-x86_64

2)修改可执行权限

$ chmod +x docker-machine-Linux-x86_64

3)最后将二进制文件移动到 /usr/local/bin 目录下

欢迎大家来到IT世界,在知识的湖畔探索吧!$ sudo cp docker-machine-Linux-x86_64 /usr/local/bin/docker-machine

4)测试是否可用

$ docker-machine -v
Docker三剑客之Machine


官网安装方式

三、创建 Machine

对于 Docker Machine 来说,术语 Machine 就是运行 docker daemon 的主机。“创建 Machine” 指的就是在 host 上安装和部署 docker。先在client机器上执行 docker-machine ls 查看一下当前的 machine:

欢迎大家来到IT世界,在知识的湖畔探索吧!$ docker-machine ls

1)创建 machine 要求能够无密码登录远程主机,所以需要先通过如下命令将 ssh key 拷贝到 192.168.0.111,192.168.0.112。

# 先在client机器上生成ssh秘钥对 $ ssh-keygen # 然后从client机器copy到host机器 $ ssh-copy-id 192.168.0.111 $ ssh-copy-id 192.168.0.112

一切准备就绪,在client端执行 docker-machine create 命令创建 host1:

欢迎大家来到IT世界,在知识的湖畔探索吧!$ docker-machine create --driver generic --generic-ip-address=192.168.0.111 host1

因为我们是往普通的 Linux 中部署 docker,所以使用 generic driver。–generic-ip-address 指定目标系统的 IP,并命名为 host1。

如果报如下错误,请关闭目标机器上防火墙

Docker三剑客之Machine

# 关闭防火墙 $ systemctl stop firewalld

2)使用同样的方法创建 host2:

欢迎大家来到IT世界,在知识的湖畔探索吧!$ docker-machine create --driver generic --generic-ip-address=192.168.0.112 host2

3)查看

$ docker-machine ls
Docker三剑客之Machine

四、管理 Machine

用 docker-machine 创建 machine 的过程很简洁,非常适合多主机环境。除此之外,Docker Machine 也提供了一些子命令方便对 machine 进行管理。其中最常用的就是无需登录到 machine 就能执行 docker 相关操作。

1)查看环境变量

欢迎大家来到IT世界,在知识的湖畔探索吧!$ docker-machine env host1
Docker三剑客之Machine


2)使用docker-machine ssh 给host1启动容器

$ docker-machine ssh host1 "docker run -itd busybox"

3)查看目标机器

欢迎大家来到IT世界,在知识的湖畔探索吧!$ docker-machine ssh host1 "docker ps -a" 

五、最后附上docker-machine 命令参数详解说明

$ docker-machine --help
欢迎大家来到IT世界,在知识的湖畔探索吧!config:查看当前激活状态 Docker 主机的连接信息。 create:创建 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: 显示帮助信息

其实docker-machine几乎在生产环境上很少见到,稍微了解一下就行,后面有更好管理docker的工具,敬请期待~

免责声明:本站所有文章内容,图片,视频等均是来源于用户投稿和互联网及文摘转载整编而成,不代表本站观点,不承担相关法律责任。其著作权各归其原作者或其出版社所有。如发现本站有涉嫌抄袭侵权/违法违规的内容,侵犯到您的权益,请在线联系站长,一经查实,本站将立刻删除。 本文来自网络,若有侵权,请联系删除,如若转载,请注明出处:https://itzsg.com/98802.html

(0)
上一篇 1天前
下一篇 1天前

相关推荐

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

联系我们YX

mu99908888

在线咨询: 微信交谈

邮件:itzsgw@126.com

工作时间:时刻准备着!

关注微信