设为首页 收藏本站
查看: 988|回复: 0

[经验分享] Docker三剑客之Machine

[复制链接]

尚未签到

发表于 2019-2-21 06:50:41 | 显示全部楼层 |阅读模式
  What is Docker Machine?
      Docker Machine是一款可以通过Docker Machine命令在虚拟机上安装Docker引擎和管理主机的工具。Machine可以在本地mac后者Windows、数据中心、或者如Azure, AWS, or Digital Ocean等云环境下创建docker主机。

      使用Docker Machine命令可以启动、检查、停止和重启主机等,升级Docker客户端和守护进程,以及配置Docker客户端与主机进行通信。
  Why should I use it?
  
  Docker Machine 使你能够在各种 Linux 上配置多个远程 Docker 宿主机。此外,Machine 允许你在较早的 Mac 或 Windows 系统上运行 Docker,如上一主题所述。Docker Machine 有这两个广泛的用例。

  •   我有一个较旧的桌面系统,并希望在 Mac 或 Windows 上运行 Docker
  
  如果你主要在不符合新的 Docker for Mac 和 Docker for Windows 应用程序的旧 Mac 或 Windows 笔记本电脑或台式机上工作,则需要 Docker Machine 来在本地“运行Docker”(即Docker Engine)。在 Mac 或 Windows box 中使用 Docker Toolbox 安装程序安装 Docker Machine 将为 Docker Engine 配置一个本地的虚拟机,使你能够连接它、并运行 docker 命令。

  •   我想在远程系统上配置 Docker 宿主机

  Docker Engine Linux 系统上原生地运行。如果你有一个 Linux 作为你的主系统,并且想要运行 docker 命令,所有你需要做的就是下载并安装 Docker Engine 。然而,如果你想要在网络上、云中甚至本地配置多个 Docker 宿主机有一个有效的方式,你需要 Docker Machine。
  无论你的主系统是 Mac、Windows 还是 Linux,你都可以在其上安装 Docker Machine,并使用 docker-machine 命令来配置和管理大量的 Docker 宿主机。它会自动创建宿主机、在其上安装 Docker Engine 、然后配置 docker 客户端。每个被管理的宿主机(“machine”)是 Docker 宿主机和配置好的客户端的结合。
  Docker Engine 和 Docker Machine 有什么区别?
  当人们说“Docker”时,他们通常是指 Docker Engine,它是一个客户端 - 服务器应用程序,由 Docker 守护进程、一个REST API指定与守护进程交互的接口、和一个命令行接口(CLI)与守护进程通信(通过封装REST API)。Docker Engine 从 CLI 中接受docker 命令,例如 docker run 、docker ps 来列出正在运行的容器、docker images 来列出镜像,等等。
  
  Docker Machine 是一个用于配置和管理你的宿主机(上面具有 Docker Engine 的主机)的工具。通常,你在你的本地系统上安装 Docker Machine。Docker Machine有自己的命令行客户端 docker-machine 和 Docker Engine 客户端 docker。你可以使用 Machine 在一个或多个虚拟系统上安装 Docker Engine。
  这些虚拟系统可以是本地的(就像你在 Mac 或 Windows 上使用 Machine 在 VirtualBox 中安装和运行 Docker Engine 一样)或远程的(就像你使用 Machine 在云提供商上 provision Dockerized 宿主机一样)。Dockerized 宿主机本身可以认为是,且有时就称为,被管理的“machines”。
  

  安装Docker Machine
      Docker Machine 可以在多种操作系统平台上安装,包括 Linux、Mac OS,以及Windows。
  Linux下安装
      直接下载Docker Machine二进制文件即可。
[root@centos7 ~]#base=https://github.com/docker/machine/releases/download/v0.14.0 &&  
curl -L $base/docker-machine-$(uname -s)-$(uname -m) >/tmp/docker-machine &&  
sudo install /tmp/docker-machine /usr/local/bin/docker-machine      安装查看安装信息:
  

  使用
  远程创建Docker引擎
  Docker Machine 支持多种后端驱动,包括虚拟机、本地主机和云平台等。
  通过docker machine在远程主机中创建docker环境,创建动作包括:ssh登录远程主机、安装docker、拷贝证书、配置docker daemon、启动docker。因此,在使用前需要配置ssh密钥认证
  使用 generic 类型的驱动,创建一台 Docker 主机,命名为 centos7-3。

[root@centos7 ~]# docker-machine create --driver generic --generic-ip-address=192.168.39.102 centos7-3注意:主机名为centos7-3,其ip为192.168.39.102

  创建主机成功后,可以通过 env 命令来让后续操作对象都是目标主机。
  
[root@centos7 ~]# docker-machine env centos7-3  

  远程登陆centos7-3,查看安装情况:

  查看machine下的服务器列表:
  

[root@centos7 ~]# docker-machine ls
NAME        ACTIVE   DRIVER    STATE     URL                         SWARM   DOCKER        ERRORS
centos7-3   -        generic   Running   tcp://192.168.39.102:2376           v18.06.1-ce   
centos7-4   *        generic   Running   tcp://192.168.39.103:2376           v18.06.1-ce  可以通过 SSH 登录到主机:
[root@centos7 ~]# docker-machine ssh centos7-3  通过docker machine创建的docker主机时,在环境下会多处docker.service.d文件夹,该文件夹下只有一个配置文件10-machine.conf
# cat /etc/systemd/system/docker.service.d/10-machine.conf

  同时生成证书文件:
# ls /etc/docker/
ca.pem          key.json        server-key.pem  server.pem
  更多场景
  通过docker-machine可以在本地创建docker主机;可以创建一个带有docker主机的虚拟机;也可以在阿里云等云环境中创建docker主机。官方文档中有更加详细的使用说明。
  Docker Machine常用命令

  •   active 查看活跃的 Docker 主机
  •   config 输出连接的配置信息
  •   create 创建一个 Docker 主机
  •   env 显示连接到某个主机需要的环境变量
  •   inspect 输出主机更多信息
  •   ip 获取主机地址
  •   kill 停止某个主机
  •   ls 列出所有管理的主机
  •   provision 重新设置一个已存在的主机
  •   regenerate-certs 为某个主机重新生成 TLS 认证信息
  •   restart 重启主机
  •   rm 删除某台主机
  •   ssh SSH 到主机上执行命令
  •   scp 在主机之间复制文件
  •   mount 挂载主机目录到本地
  •   start 启动一个主机
  •   status 查看主机状态
  •   stop 停止一个主机
  •   upgrade 更新主机 Docker 版本为最新
  •   url 获取主机的 URL
  •   version 输出 docker-machine 版本信息
  •   help 输出帮助信息
  每个参数又都是有help的,可以通过:
docker-machine  -h  查看具体帮助信息。

  支持驱动
通过 -d 选项可以选择支持的驱动类型。

  •   amazonec2
  •   azure
  •   digitalocean
  •   exoscale
  •   generic
  •   google
  •   none
  •   openstack
  •   rackspace
  •   softlayer
  •   virtualbox
  •   vmwarevcloudair
  •   vmwarevsphere
  参考资料:
  https://docs.docker.com/machine/overview/
  http://blog.运维网.com/ityouknow/2092774




运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-675003-1-1.html 上篇帖子: 『中级篇』Docker compose 部署一个复杂的应用(41) 下篇帖子: 实战Docker到Kubernetes技术系列项目实战视频教程下载
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表