当前位置: 首页 > article >正文

【赵渝强老师】使用Docker Machine远程管理Docker

在这里插入图片描述

  Docker Machine是Docker官方提供的一个远程管理工具。通过使用Docker Machine,可以帮助开发人员在远程主机上安装Docker;或者在远程的虚拟主机上直接安装虚拟机并在虚拟机中安装Docker。Docker Machine还提供了相应的命令来管理这些远程的Docker环境和虚拟机。下图是官方提供的一张关于Docker Machine的图片,很形象地说明了Docker Machine的功能。

在这里插入图片描述
  视频讲解如下:

使用Docker Machine远程管理Docker

【赵渝强老师】使用Docker Machine远程管理Docker

一、在远程宿主机上安装Docker

  安装好了Docker Machine以后,就可以通过命令"docker-machine"来管理远程主机上的Docker环境了。参考下表单独准备一台新的虚拟机node2,下表列出了目前使用的三台虚拟机的信息。由于已经在master主机上安装好了Docker Machine,便可以通过"docker-machine"的命令远程在node2上安装Docker,并且管理它。
在这里插入图片描述

  由于Docker Machine在进行远程管理的时候,需要免密码登录的支持。因此在使用"docker-machine"命令之前,需要先配置主机之间的免密码登录,然后才能使用Docker Machine。

1.1 配置主机间的免密码登录

  免密码登录采用的不对称加密的认证方式,需要产生密钥对,即:一个公钥和一个私钥,其本质就是两个字符串。公钥负责加密;而私钥负责解密。下图为大家展示了免密码登录的过程。图中我们想从Server A免密码登录到Server B,这时候我们就可以从Server A到Server B的免密码登录。

在这里插入图片描述

提示:免密码登录是单向的。如果想反过来,从Server B免密码登录Server A上,也需要单独进行配置。

  在了解了免密码登录的登录过程后,下面的步骤演示了如何配置从master节点到node2节点的免密码登录。

(1)在master节点上生成公钥与私钥,执行下面的命令:

ssh-keygen -t rsa

(2)将master节点的公钥负责到node2上,执行下面的命令:

ssh-copy-id -i .ssh/id_rsa.pub root@192.168.79.13

提示:由于还没有完成免密码登录的配置,因此这一步要输入node2的密码。

(3)在master节点上输入下面的命令,验证免密码登录。这时候发现将不需要输入node2的命名便可以直接从master节点登录到node2节点。

ssh 192.168.79.13

1.2 使用"docker-machine"在远程主机上安装Docker

  在配置好了master节点与node2节点之间的免密码登录后,便可以在master节点上使用"docker-machine"命令在node2上远程安装Docker。执行下面的步骤:

(1)在master节点上,执行下面的命令,如下图所示。

docker-machine create \
-d generic \
--generic-ip-address=192.168.79.13 \
--generic-ssh-user=root \
--generic-ssh-key /root/.ssh/id_rsa node2

其中的参数:

  • -d:表示使用的驱动类型,官方支持的驱动有:amazonec2、azure、digitalocean、exoscale、generic、google、hyperv、none、openstack、rackspace、softlayer、virtualbox、vmwarevcloudair、vmwarefusion、vmwarevsphere。

  • –generic-ip-address:远端主机的IP地址。

  • –generic-ssh-user:远程登录的用户名。

  • –generic-ssh-key:免密码登录的私钥文件。

  • node2:远端主机的别名。

提示:这条命令将会执行很长的时间。

  当"docker-machine create"命令成功执行完成后,通过打印输出的日志可以看到在远程主机上已经成功安装了Docker并且启动成功,如下图所示。
在这里插入图片描述

(2)在node2节点上,执行下面的命令检查Docker的版本信息。

docker version

提示:在执行"docker-machine create"命令时,将会把远端主机的主机名修改为指定的别名。由于这里使用的别名是"node2",所以看不出区别。

(3)在master节点上,执行下面的命令查看由Docker Machine管理的远程主机信息,如下图所示。
在这里插入图片描述

二、管理远程的Docker主机

  下面将通过几个具体的示例来演示一些常用命令的使用方式和它们输出的结果信息。

  • 下面的命令将显示远端主机的环境变量信息,如下图所示。
docker-machine env node2

  这条命令输出的内容可以作为环境变量参数来设置一些Docker客户端,从而让本机的Docker客户端可以与远程的Docker服务器通信。其中,node2是我们之前创建的远端服务器的名字。
在这里插入图片描述

  • 下面的命令将设置本地的环境变量,以操作远端主机node2上Docker守护进程。
eval $(docker-machine env node2)

  该命令是运行在当前的命令行终端中,但使用该命令后接下来运行的docker命令操作的都是远端主机。例如:在master主机上执行该命令后,尝试拉取一个Nginx镜像。这时将在远端主机的node2上完成Nginx镜像的拉取,如下图所示。
在这里插入图片描述

  • 下面的命令将启动、停止和重启远端主机上的Docker环境。
docker-machine start/stop/restart node2

提示:generic驱动类型不支持stop命令。

  • 下面的命令将查看远端主机上的Docker状态。
docker-machine status node2
  • Docker Machine同时也支持SSH登录,下面的命令将从master主机上以SSH方式登录到远端主机node2上。
docker-machine ssh node2

http://www.kler.cn/a/282525.html

相关文章:

  • 如何在 Ubuntu 上安装 Jellyfin 媒体服务器
  • 速通前端篇 —— HTML
  • 【机器学习导引】ch6-支持向量机
  • H3C NX30Pro刷机教程-2024-11-16
  • 深入解析 CentOS 7 上 MySQL 8.0 的最佳实践20241112
  • 用PHP实现一个简单的http服务器
  • 第42篇 使用数码管实现计数器<三>
  • TCP、HTTP以及RPC的梳理
  • Python将Word文档转为PDF
  • npm报错信息集合——基础积累
  • vue3如何监听reactive对象是哪个属性发生的变化
  • 东华医疗协同办公系统templateFile接口存在任意文件读取漏洞 附POC
  • 我的电脑/资源管理器里无法显示新硬盘?
  • Lua收集请求日志
  • 全栈程序员 | 精通安卓、鸿蒙,小程序,Java、Vue.js、SpringBoot及更多技术
  • Git之1.7版本重要特性及用法实例(五十五)
  • 今日算法:蓝桥杯基础题之“微生物增殖”
  • 网络安全面试经验80篇
  • C#命名空间(Namespace)
  • 如何本地搭建 Whisper 语音识别模型?一文解决
  • Vulkan入门系列16 - 生成多级纹理贴图( Mipmaps)
  • Git之1.6版本重要特性及用法实例(五十四)
  • 请你学习:前端布局3 - flex
  • 实训day36(8.26)
  • 概率论与高等数学、线性代数的联系及应用
  • 虚幻5|技能栏优化(1)---优化技能UI,并添加多个技能