热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Dockermachine安装过程

DockerMachine是Docker官方提供的一个工具,在集群环境中它可以帮助我们在远程的机器上安装Dockerr。我们还可以通过docker-machine命令

Docker Machine 是 Docker 官方提供的一个工具,在集群环境中它可以帮助我们在远程的机器上安装 Dockerr。我们还可以通过 docker-machine 命令来管理这些虚拟机和 Docker。下面是来自 Docker Machine 官方文档的一张图,很形象!

安装好之后通过docker-machine -v或docker-machine version 来验证是否安装成功。
验证Docker Machine是否安装成功

2、在远程主机上安装Docker

如果我们需要在多台主机安装Docker时,ssh到每台主机单独安装也不是不行,但这样很浪费时间精力。Docker Machine的出现就帮我们解决了在多台主机上安装Docker的问题。

准备工作

为了让Docker Machine能够帮我们自动安装Docker到其他主机,需要做一下几点准备工作:

  • 在Docker Machine主机生成ssh key,一一copy到需要安装 Docker的机器。这样做是为了让Docker Mechine能够免密登陆到其他机器来执行安装命令。
  • 在目标主机上设置用户sudo时不需要输入密码。

在Docker Machine主机生成ssh key并copy到目标主机

在Docker Machine主机执行ssh-keygen命令,一路回车即可。生成成功后执行ssh-copy-id命令将ssh key copy到目标主机。注意此处目标主机的用户名如何和Docker Machine主机的用户名不同,需要明确写出用户名,建议采用如下方法。
ssh-copy-id userName@targetIpAddress

设置目标主机用户sudo时不需要输入密码

在目标主机执行如下命令

sudo vim /etc/sudoers

最后一行添加如下代码,一定要在最后一行添加,我在安装过程中遇到很多ssh的莫名其妙问题就是因为这行代码没在最后一行。至于为什么目前也没搞懂。。。

用户名 ALL=(ALL:ALL) NOPASSWD : ALL

此处的用户名需要和前面ssh-copy-id时的用户名一致。准备工作已经就绪,下面我们来为远程主机安装Docker。

3、为远程主机安装Docker

在Docker Mechine主机执行如下命令

docker-machine create -d generic \--generic-ip-address=xxx.xxx.xxx.xxx \--generic-ssh-user=xxx \hostName

需要注意的是,create命令本来是要创建带有docker的虚拟机。而并不是简单的安装Docker使用。搞清楚这一点很重要,我自己在最开始的时候就因为没搞清楚这个导致很多东西都无法理解。
但现在我们已经创建好了虚拟机,只需要安装Docker即可。上述命令中 -d 是 --driver 的简写形式,主要用来指定使用什么驱动程序来创建目标主机。Docker Machine官方支持很多版本的driver,可以根据需要自行在官网查看使用。本例中使用 generic 就可以了。接下来以 --generic-ip-address用来设置需要安装Docker的主机IP,--generic-ssh-user用来设置连接目标主机时的ssh用户,此处的user需要与前面ssh-copy-id时的用户名一致。最后一个参数 hostName是虚拟机的名称,Docker Machine 会用它来设置目标主机的名称。

4、Docker Machine可以直接创建带有Docker的虚拟机,具体操作方法可以参考sparkdev的这篇博客。

总结

Docker-Machine确实为我们搭建集群环境提供了很大的便利,但在我实际操作的过程中发现,使用Docker-Machine很容易遇到各种Bug导致安装失败,但多尝试几次也会安装成功。因此在小规模集群时安装速度不如直接安装或者利用一键脚本直接安装。



推荐阅读
  • 在Docker中,将主机目录挂载到容器中作为volume使用时,常常会遇到文件权限问题。这是因为容器内外的UID不同所导致的。本文介绍了解决这个问题的方法,包括使用gosu和suexec工具以及在Dockerfile中配置volume的权限。通过这些方法,可以避免在使用Docker时出现无写权限的情况。 ... [详细]
  • 安装mysqlclient失败解决办法
    本文介绍了在MAC系统中,使用django使用mysql数据库报错的解决办法。通过源码安装mysqlclient或将mysql_config添加到系统环境变量中,可以解决安装mysqlclient失败的问题。同时,还介绍了查看mysql安装路径和使配置文件生效的方法。 ... [详细]
  • 本文介绍了在rhel5.5操作系统下搭建网关+LAMP+postfix+dhcp的步骤和配置方法。通过配置dhcp自动分配ip、实现外网访问公司网站、内网收发邮件、内网上网以及SNAT转换等功能。详细介绍了安装dhcp和配置相关文件的步骤,并提供了相关的命令和配置示例。 ... [详细]
  • 本文介绍了在mac环境下使用nginx配置nodejs代理服务器的步骤,包括安装nginx、创建目录和文件、配置代理的域名和日志记录等。 ... [详细]
  • mac php错误日志配置方法及错误级别修改
    本文介绍了在mac环境下配置php错误日志的方法,包括修改php.ini文件和httpd.conf文件的操作步骤。同时还介绍了如何修改错误级别,以及相应的错误级别参考链接。 ... [详细]
  • 解决github访问慢的问题的方法集锦
    本文总结了国内用户在访问github网站时可能遇到的加载慢的问题,并提供了解决方法,其中包括修改hosts文件来加速访问。 ... [详细]
  • python3 nmap函数简介及使用方法
    本文介绍了python3 nmap函数的简介及使用方法,python-nmap是一个使用nmap进行端口扫描的python库,它可以生成nmap扫描报告,并帮助系统管理员进行自动化扫描任务和生成报告。同时,它也支持nmap脚本输出。文章详细介绍了python-nmap的几个py文件的功能和用途,包括__init__.py、nmap.py和test.py。__init__.py主要导入基本信息,nmap.py用于调用nmap的功能进行扫描,test.py用于测试是否可以利用nmap的扫描功能。 ... [详细]
  • 本文介绍了5个基本Linux命令行工具的现代化替代品,包括du、top和ncdu。这些替代品在功能上进行了改进,提高了可用性,并且适用于现代化系统。其中,ncdu是du的替代品,它提供了与du类似的结果,但在一个基于curses的交互式界面中,重点关注占用磁盘空间较多的目录。 ... [详细]
  • 使用Docker安装和运行Nexus
    本文介绍了使用Docker安装和运行Nexus的方法,包括docker-compose.yml配置和启动时可能出现的权限问题解决方法。同时提供了登录控制台验证安装的地址和登录信息。 ... [详细]
  • 大坑|左上角_pycharm连接服务器同步写代码(图文详细过程)
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了pycharm连接服务器同步写代码(图文详细过程)相关的知识,希望对你有一定的参考价值。pycharm连接服务 ... [详细]
  • Hadoop2.6.0 + 云centos +伪分布式只谈部署
    3.0.3玩不好,现将2.6.0tar.gz上传到usr,chmod-Rhadoop:hadophadoop-2.6.0,rm掉3.0.32.在etcp ... [详细]
  • 概述H.323是由ITU制定的通信控制协议,用于在分组交换网中提供多媒体业务。呼叫控制是其中的重要组成部分,它可用来建立点到点的媒体会话和多点间媒体会议 ... [详细]
  • 现在比较流行使用静态网站生成器来搭建网站,博客产品着陆页微信转发页面等。但每次都需要对服务器进行配置,也是一个重复但繁琐的工作。使用DockerWeb,只需5分钟就能搭建一个基于D ... [详细]
  • DockerDataCenter系列(四)-离线安装UCP和DTR,Go语言社区,Golang程序员人脉社 ... [详细]
  • 本文讨论了如何使用Web.Config进行自定义配置节的配置转换。作者提到,他将msbuild设置为详细模式,但转换却忽略了带有替换转换的自定义部分的存在。 ... [详细]
author-avatar
会飞的狼
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有