使用Docker Machine管理阿里云ECS
Docker Machine是一个docker管理工具,它解决了docker的两个问题:
- docker只能运行在Linux上
- docker只能管理运行本机的docker镜像。
本质上docker-machine是一个虚拟机管理工具,它通过创建一个安装好docker的虚拟机(支持VirtualBox,DigitalOcean,EC2等),并设置对应的环境变量(DOCKER_HOST,DOCKER_MACHINE_NAME等),使得本地的docker工具获得透明远程操作虚拟机的能力。从而使本身不支持docker的Windows和Mac系统能够直接使用docker命令。
docker-machine的安装可以通过docker-toolbox (支持Windows和Mac),如果是Mac电脑,推荐直接使用brew安装。
使用docker-machine创建一台虚拟机非常简单:
#创建一台名为vb的本地Virtualbox虚拟机 docker-machine create --driver virtualbox vb #创建一台名为do的Digitalocean远程服务器 export DIGITALOCEAN_ACCESS_TOKEN=xxxxx #从digitalocean的管理面板获取的token export DIGITALOCEAN_SIZE="512mb" #内存512mb,1gb类似 export DIGITALOCEAN_IMAGE="ubuntu-14-04-x64" #系统Ubuntu 14.04 export DIGITALOCEAN_REGION="sgp1" #区域新加坡 docker-machine create --driver digitalocean do
可通过docker-machine ls
查看当前所有的虚拟机,docker-machine ssh vb
可ssh到指定虚拟机,默认是一个精简的Linux系统。执行eval $(docker-machine env do)
后,设置相关环境变量指向名为do
的虚拟机,后续docker命令都会远程的在这台虚拟机上执行。如:这个时候执行docker images
列出的是Digitalocean远程服务器上的docker镜像。
详细使用方法参考官方文档。
这里主要想讲的是docker-machine对阿里云的支持。
docker-machine不支持直接创建阿里云ECS,虽然有第三方插件,但我只想用docker-machine远程安装管理docker的功能,创建和删除ECS还是在阿里云的控制台操作比较放心:)
搜索一下文档,发现官方虽然没有阿里云driver但有一个generic driver,可通过ssh管理现有的机器,原则上所有的Linux机器都支持。
但有一个问题,docker-machine的ssh功能只支持基于Public Key认证,而阿里云创建虚拟机的时候只支持通过密码登录,所以还需配置一下Public Key,如果是Mac电脑:
export ECS_IP=0.0.0.0 #阿里云控制台创建的ecs的ip地址 brew install ssh-copy-id ssh-copy-id -i ~/.ssh/id_rsa.pub root@$ECS_IP ssh root@$ECS_IP #测试是否不用输入密码就登录了
公钥认证搞定后,创建阿里云的docker-machine
export ECS_IP=0.0.0.0 #阿里云控制台创建的ecs的ip地址 docker-machine create --driver generic --generic-ip-address=$ECS_IP aliyun-machine
也可在创建的时候加上阿里云的docker加速器地址
export ECS_IP=0.0.0.0 #阿里云控制台创建的ecs的ip地址 export ALI_MIRROR=https://0i912uv5.mirror.aliyuncs.com #从dev.aliyun.com后台获取你的专属加速器,这个是假的并不能用 docker-machine create --engine-registry-mirror=$ALI_MIRROR --driver generic --generic-ip-address=$ECS_IP aliyun-machine
创建完成后,记得eval $(docker-machine env aliyun-machine)
一下,即可用本地的docker远程操作阿里云ECS上的docker镜像了。
最后,用docker-machine来玩玩这个微信机器人吧
http://dev.aliyun.com/detail.html?repoId=2859

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
为什么不需要在 Docker 容器中运行 sshd
当开始使用Docker时,人们经常问:“我该如何进入容器?”,其他人会说“在你的容器里运行一个SSH服务器”。但是,从这篇博文中你将会了解到你根本不需要运行SSHd守护进程来进入你的容器。当然,除非你的容器就是一个SSH服务器。 运行SSH服务器是很想当然的,因为它提供了进入容器的简便方式。在我们公司基本上每个人都最少使用过一次SSH。我们中有很大一部分人每天都会使 用它,并且他们很熟悉公钥与私钥,无密码登录,密钥代理,甚至有时会使用端口转发和其他不常用的功能。正因如此,人们建议你在容器中运行SSH并不奇怪。 但你应该仔细考虑下。 假设你正在假设一个Redis Server或Java Webservice的Docker镜像, 我会问你以下几个问题: 你需要用SSH来做什么? 一般来说, 你想做备份, 检查日志, 或者重启进程, 调整配置, 还有可能用gdb, strace或其他类似的工具来debug服务器。那我们会看一下我们怎么不使用SSH来做这些事情。 你怎么管理你的密钥和密码的?一般来说,你要么把它们写到你的镜像中,要么就把它们放在一个卷中。你想一下如果你要更新这些密钥或密码你 会...
- 下一篇
“WM云建站”系列视频课程--Discuz搬家:从ecs青岛到杭州&数据库替换为RDS
wm云建站站长,阿里云论坛版主“51干警网”出品。 WM云建站系列教程 Discuz搬家:从ecs青岛到杭州&数据库替换为RDS 视频时长:1小时8分55秒 历时:158分钟 全程高清录像 数据库由mysql搬到rds 青岛服务器马上到期了,准备把阿里云ecs上面的discuz送青岛搬家到杭州ecs节点。 这个是全记录。 因为是全记录可能不叫枯燥,等我搬家完毕会做一个简化版的文字说明。 "> 视频建议全屏观看 备份数据库 打包整站 去discuz官网下载对应编码的最新版本 data的文件夹我全部删除了,主要是占用空间太大。 好吧,我又重新解压了,data不能删除。 这次我考虑用rds的数据库,储存的话暂时不用oss,还是用自带的数据盘。 删除./data/install.lock 还原数据库,这块我有做错的,当时备份的时候应该用分块备份。 欢迎添加我的QQ1978638808交流建站经验。也可以微信搜索添加我的微信公众号“51干警网”来联系我。 搬家完毕,谢谢大家的耐心收看。
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- Hadoop3单机部署,实现最简伪集群
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Eclipse初始化配置,告别卡顿、闪退、编译时间过长
- SpringBoot2更换Tomcat为Jetty,小型站点的福音
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
- SpringBoot2全家桶,快速入门学习开发网站教程
- SpringBoot2初体验,简单认识spring boot2并且搭建基础工程
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合Thymeleaf,官方推荐html解决方案
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池