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

[经验分享] Docker Machine快速安装Docker环境

[复制链接]
累计签到:1 天
连续签到:1 天
发表于 2016-1-4 09:09:35 | 显示全部楼层 |阅读模式
什么是Docker Machine?
Machine是一个简化安装Docker环境的工具。怎么简化法,例如,在ubuntu安装一个docker环境要按照U这个系统配置教程来装,哪天又换了CentOS系统,又要按照这个系统配置教程装。市场上主流Linux系统版本很多,每次安装岂不有些麻烦。使用Machine工具就简单很多,一两条命令即可在主流Linux系统上安装Docker环境,用户不用考虑什么操作系统。
另一方面,Machine还具备Docker工具管理什么虚拟化技术,Generic驱动默认管理LXC容器技术。我个人理解是这样的,具体Docker官方初衷设计如何,还需进一步探索。

1、先看下Docker Machine支持Docker以什么为虚拟化技术的驱动
spacer.jpg QQ截图20160104090918.png
2、安装Docker-Machine
操作系统:Ubuntu14.04_x64
docker-machine代码托管在github上,而二进制文件存储在AWS S3上,因此需要翻墙才可以下在,可以下载使用:百度云附件:docker-machine_linux-amd64.zip   

下载后上传到Ubuntu系统的当前目录下,然后执行:
$ sudo mv docker-machine_linux-amd64 /usr/local/bin/docker-machine
如果能访问AWS S3存储,可以在root用户下直接运行下面这个命令:
$ curl -L https://github.com/docker/machin ... machine_linux-amd64 >/usr/local/bin/docker-machine && chmod +x /usr/local/bin/docker-machine
当命令执行成功后,就可以查看到版本:
$ docker-machine version
docker-machine version 0.5.3, build 4d39a66
3、接下来用docker-machine命令快速创建Docker主机
注意:docker-machine通过ssh连接到主机,从网上下载并安装docker工具,需要用root权限来安装,在ubuntu系统下,默认禁止root用户登录系统,因此需要先配置root允许SSH登录系统并免交互登录或指定私钥登录。
1) 允许root ssh登录
# vi /etc/ssh/sshd_config
PermitRootLogin root    #修改此项为允许root登录
# service ssh restart
2) 创建密钥对
# ssh-keygen  #一直回车
3) 免交互root登录系统
# ssh-copy-id root@192.168.18.5
4) 启用visiblepw
# vi /etc/sudoers
Defaults       visiblepw
按wq!保存退出!惭愧,还不太明白这个visiblepw的实际作用。
如果不添加这个条,可能报下面的错:
1
2
3
4
5
6
7
8
9
10
Error creating machine: Error running provisioning: Something went wrong running an SSH command!
command : sudo hostname ubuntu && echo "ubuntu" | sudo tee /etc/hostname
err     : exit status 1
output  : sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: no tty present and no askpass program specified
Sorry, try again.
sudo: 3 incorrect password attempts



5) 使用generic类型的驱动,创建一台docker主机,名字为18.5

# docker-machine create -d generic --generic-ip-address=192.168.18.5 --generic-ssh-user=root 18.5

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
Creating CA: /root/.docker/machine/certs/ca.pem
Creating client certificate: /root/.docker/machine/certs/cert.pem
Running pre-create checks...
Creating machine...
(18.5) No SSH key specified. Connecting to this machine now and in the future will require the ssh agent to contain the appropriate key.
Waiting for machine to be running, this may take a few minutes...
Machine is running, waiting for SSH to be available...
Detecting operating system of created instance...
Detecting the provisioner...
Provisioning with ubuntu(upstart)...
Installing Docker...
Copying certs to the local machine directory...
Copying certs to the remote machine...
Setting Docker configuration on the remote daemon...
Checking connection to Docker...
Docker is up and running!
To see how to connect Docker to this machine, run: docker-machine env ubuntu



参数说明:
-d  driver  #指定基于什么虚拟化技术的驱动
--generic-ip-address  #指定要安装宿主机的IP,这里是本地的IP。也就是说,你也可以给别的主机装Docker,前提是SSH root用户免交互登录或私钥认证。
--generic-ssh-user   #SSH的用户
--generic-key-key   #指定私钥来实现免交互登录

等待数分钟后,docker就安装成功了,可以通过docker命令管理容器了。
# docker-machine ls
1
2
NAME      ACTIVE   DRIVER    STATE     URL                         SWARM   DOCKER    ERRORS
18.252    -        generic   Running   tcp://192.168.18.252:2376           v1.9.1




docker-machine命令:
  • help  查看帮助信息
  • active  查看活动的Docker主机
  • config  输出连接的配置信息
  • create  创建一个Docker主机
  • env  显示连接到某个主机需要的环境变量
  • inspect  输出主机更新信息
  • ip  获取Docker主机地址
  • kill  停止某个Docker主机
  • ls  列出所有管理的Docker主机
  • regenerate-certs  为某个主机重新成功TLS认证信息
  • restart  重启Docker主机
  • rm  删除Docker主机
  • scp  在Docker主机之间复制文件
  • ssh  SSH到主机上执行命令
  • start  启动一个主机
  • status  查看一个主机状态
  • stop  停止一个主机
  • upgrade  更新主机Docker版本为最新
  • url  获取主机的URL




运维网声明 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-159978-1-1.html 上篇帖子: Docker数据持久化与容器迁移 下篇帖子: Docker源码分析(一):Docker架构
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

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

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

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

扫描微信二维码查看详情

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


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


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


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



合作伙伴: 青云cloud

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