docker-machine在阿里云部署批量部署docker
概述
docker入门中,docker swarm都是在本机的虚拟机上,为了更贴近生产环境,我将这部分重新部署到阿里云。不需要太贵,选最便宜的按量付费ECS,1小时才0.05元。
docker-machine的使用跟docker入门中一样,只是需要添加阿里云的docker-machine驱动,同时配置阿里云docker-machine驱动的环境。
docker安装
我选择的是Ubuntu16.04,安装教程阿里云提供https://help.aliyun.com/document_detail/60742.html,几乎涵盖了主流的操作系统。
docker-machine安装
先下载二进制文件:wget https://github.com/docker/machine/releases/download/v0.16.0/docker-machine-Linux-x86_64
,下载慢甚至下载不下来,就手动下载之后放服务器上。
修改文件权限chmod +x docker-machine-Linux-x86_64
。
将二进制文件放到/usr/local/bin目录下sudo cp docker-machine-Linux-x86_64 /usr/local/bin/docker-machine
使用命令docker-machine -v
测试是否安装成功。
阿里云docker-machine驱动
阿里云提供的docker-machine驱动,可以根据配的环境变量置调用阿里云的API,比如能直接通过docker-machine create
购买实例,安装操作系统并安装docker,docker start
开启实例,docker stop
关闭实例,甚至dokcer rm
也会在阿里云上自动释放实例。跟在虚拟机上操作时一样简单。
https://develop.aliyun.com/command/docker
提供下载地址。Ubuntu用的下载地址是https://docker-machine-drivers.oss-cn-beijing.aliyuncs.com/docker-machine-driver-aliyunecs_linux-amd64.tgz
。
解压tar -xvf docker-machine-driver-aliyunecs_linux-amd64.tgz
,解压后里面有个bin文件夹,将这个文件夹放到之前安装docker-machine的文件夹下就算安装完成sudo cp docker-machine-driver-aliyunecs.linux-amd64 /usr/local/bin/docker-machine-driver-aliyunecs
。
配置阿里云docker-machine驱动的环境
这个驱动跟docker-machine有类似读取环境变量的行为,环境变量中配置阿里云的API key一类的东西,就可以让docker-machine驱动自动操作我们的阿里云账号购买指定的虚拟机并安装配置相关的环境!花钱更便捷。
找到自己用户目录下的.bashrc
,在末尾添加如下内容。要在阿里云控制台上找的参数很多,耐心找。
export ECS_ACCESS_KEY_ID='填你自己key id'
export ECS_ACCESS_KEY_SECRET='填你自己的key secret'
# 购买的镜像是1核0.5G内存的最小型实例
export ECS_INSTANCE_TYPE='ecs.t5-lc2m1.nano'
# 来个50M宽带
export ECS_INTERNET_MAX_BANDWIDTH='50'
# 购买的区域是石家庄
export ECS_REGION='cn-zhangjiakou'
# 设置的密码,一定要8~30位,有大小写字母,数字和乱七八糟的标点,不然会自动创建失败
export ECS_SSH_PASSWORD='7b6424B61c6C21~0%39F1C56'
# 磁盘只要20G
export ECS_SYSTEM_DISK_SIZE='20'
# 磁盘用便宜的高效云盘吧,任性选SSD也行
export ECS_SYSTEM_DISK_CATEGORY='cloud_efficiency'
# 选择的镜像是Ubuntu16.04
export ECS_IMAGE_ID='ubuntu_16_0402_64_20G_alibase_20180409.vhd'
# 专用网络的节点
export ECS_VPC_ID='vpc-8vbhii32tpugfcqbryqcn'
# 虚拟交换机的节点
export ECS_VSWITCH_ID='vsw-8vbweep4xrtamazp50775'
# ECS的标签
export ECS_TAGS='chen_docker'
# 安全组
export ECS_SECURITY_GROUP='sg-8vb5wwel08nyrih2lmtb'
# 石家庄a区
export ECS_ZONE='cn-zhangjiakou-a'
# 一定要是true
export ECS_IO_OPTIMIZED='true'
添加完成后保存并执行source .bashrc
使配置环境生效。
关于这些参数,阿里云有解释https://github.com/AliyunContainerService/docker-machine-driver-aliyunecs
。
购买阿里云ECS实例
前面配置的这些环境变量就是为了方便我们买买买。现在购买ECS实例只需要docker-machine create -d aliyunecs <machine name>
就可以等待实例从购买到自动配置到可用就行了。
到此,就跟docker入门3中的操作方式一模一样。
遇到的错误
密码设置过于简单
我只设置了几个数字,创建绝对失败,提示The specified parameter "Password" is not valid.
。设置复杂一些的密码就好。
弹性公网
弹性公网是要收费的,可以将ECS_PRIVATE_ADDR_ONLY
添加进来,设置为true,网络就只有局域网了。但安装docker需要公网,这样做的结果就是可以用docker-machine ssh连接进去,但无法联网,也就无法安装docker,没有docker那还做什么。
弹性公网不是按量计费
刚玩docker-machine,使用阿里云的docker-machine driver创建ECS,之前随手填了个20M宽带,一觉醒来发现充值的100块只有一半了QAQ,结果发现开通的是20M固定宽带。
这一切的根源就在于docker-machine-driver的版本。一定要下载最新版的https://github.com/AliyunContainerService/docker-machine-driver-aliyunecs
docker-machine-driver,老版本根本没有ECS_INTERNET_CHARGE_TYPE
这个选项,所以会自动开成固定宽带,这一天费用就海了去了!
docker-machine在阿里云部署批量部署docker的更多相关文章
- DOCKER 学习笔记7 Docker Machine 在阿里云实例化ECS 以及本地Windows 实例化虚拟机实战
前言 通过以上6小节的学习,已经可以使用DOCKER 熟练的部署应用程序了.大家都可以发现使用 DOCKER 带来的方便之处,因为现在的话,只是在一台服务器上部署,这样部署,我们只需要一条命令,需要的 ...
- 阿里云Linux CentOS 7 Docker部署使用gogs搭建自己的git服务器
一.前言 Git是目前优秀和流行的源代码管理工具.而GitHub是一个面向开源及私有软件项目的托管云平台,但开源免费,私有收费.而公司出于商业化等目的需要搭建自己的源代码托管服务器.通过网上了解Gog ...
- unigui在阿里云服务器上部署
unigui在阿里云服务器上部署 客户租用了阿里云WINDOWS2008服务器,部署UNIGUI发现死活不行,WINDOWS2008自带的IE9浏览器打开URL,卡死在loading...... 我远 ...
- 阿里云运维部署工具AppDeploy详细教程
AppDeploy是一个通过SSH实现的命令行工具,可完成应用部署和远程运维管理.当前工具实现为两个版本:普通版(伪代码描述语言)和Python版.Python版使用Python语法规则,可实现您的各 ...
- 阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7)
阿里云服务器 ECS 部署lamp:centos+apache+mysql+php安装配置方法 (centos7) 1.效果图 1 2. 部署步骤 1 1. mysql安装附加(centos7) 7 ...
- thinkphp项目阿里云ECS服务器部署
[日记]thinkphp项目阿里云ECS服务器部署 项目本地开发告一段落.准备上传到服务器上测试 技术组成 thinkphp+mysql+阿里ECS 代码管理方式git 一.阿里ECS服务器配置 ...
- 阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建
准备: 两台配置CentOS 7.3的阿里云ECS服务器: hadoop-2.7.3.tar.gz安装包: jdk-8u77-linux-x64.tar.gz安装包: hostname及IP的配置: ...
- 阿里云ECS服务器部署HADOOP集群(二):HBase完全分布式集群搭建(使用外置ZooKeeper)
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...
- 阿里云ECS服务器部署HADOOP集群(三):ZooKeeper 完全分布式集群搭建
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建,多添加了一个 datanode 节点 . 1 节点环境介绍: 1.1 环境介绍: 服务器:三台阿里 ...
- 阿里云ECS服务器部署HADOOP集群(六):Flume 安装
本篇将在阿里云ECS服务器部署HADOOP集群(一):Hadoop完全分布式集群环境搭建的基础上搭建. 1 环境介绍 一台阿里云ECS服务器:master 操作系统:CentOS 7.3 Hadoop ...
随机推荐
- Android Studio常见问题集锦
Android studio无法在可视化页面预览XML布局文件 修改res/values/styles.xml文件中name=“AppTheme”的style,在Theme.AppCompat.Lig ...
- 使用 flask 构建我的 wooyun 漏洞知识库
前言 最近在学 flask,一段时间没看,又忘得差不多了,于是弄这个来巩固一下基础知识 漏洞总共包括了 88820 个, Drops 文章总共有 1235 篇,全来自公开数据,在 Github 上收集 ...
- 水题-------判断Digit Generator
题目链接:https://vjudge.net/problem/UVA-1583 题意:给出一个数N,判断最小的数x使x+(x各位数字的和)=N 题解:这是一个暴力求解题,不过有技巧,x各位数字的和最 ...
- Java事务解析(事务的基本操作+隔离的等级+事务的四大特性+事务的概念)
Java事务解析(事务的基本操作+隔离的等级+事务的四大特性+事务的概念) 什么是事务? 如果一个包含多个步骤的业务操作,这些操作被事务管理,那么这些操作要么同时成功要么同时失败 事务的四大特性(必须 ...
- 解决智慧城市发展困扰:Web 3D 智慧环卫 GIS 系统
前言 智慧环卫,依托物联网技术与移动互联网技术,对环卫管理所涉及到的人.车.物.事进行全过程实时管理,合理设计规划环卫管理模式,提升环卫作业质量,降低环卫运营成本,用数字评估和推动垃圾分类管理实效.智 ...
- IDEA去掉Autowired的黄色背景和对象的红线
Intellij idea @AutoWired注入bean 出现红色波浪线,@autowird下面显示黄色波浪线或者标黄,如下图,解决方法总结一下供大家使用 首先选择File--Settings- ...
- Python元组内置函数
Python元组内置函数: len(元组名): 返回元组长度 # len(元组名): # 返回元组长度 tuple_1 = (1,2,3,'a','b','c') print("tuple_ ...
- Python basestring() 函数
描述 basestring() 方法是 str 和 unicode 的超类(父类),也是抽象类,每组词 www.cgewang.com 因此不能被调用和实例化,但可以被用来判断一个对象是否为 str ...
- Android Studio中如何使用自定义的framework库
在安卓app开发中,通常不会遇到需要使用自定义framework库的情况,使用的都是标准的内核库.但也有例外,比如针对定制化的ROM,ROM厂商可能在ROM中对安卓源码做过修改,对应用层app暴露出与 ...
- Python使用Tornado+Redis维护ADSL拨号服务器代理池
们尝试维护过一个免费的代理池,但是代理池效果用过就知道了,毕竟里面有大量免费代理,虽然这些代理是可用的,但是既然我们能刷到这个免费代理,别人也能呀,所以就导致这个代理同时被很多人使用来抓取网站,所以当 ...