博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
docker-machine在阿里云部署批量部署docker
阅读量:7083 次
发布时间:2019-06-28

本文共 3015 字,大约阅读时间需要 10 分钟。

概述

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'# 磁盘只要20Gexport ECS_SYSTEM_DISK_SIZE='20'# 磁盘用便宜的高效云盘吧,任性选SSD也行export ECS_SYSTEM_DISK_CATEGORY='cloud_efficiency'# 选择的镜像是Ubuntu16.04export 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'# 一定要是trueexport ECS_IO_OPTIMIZED='true'

添加完成后保存并执行source .bashrc使配置环境生效。

关于这些参数,阿里云有解释https://github.com/AliyunContainerService/docker-machine-driver-aliyunecs

购买阿里云ECS实例

前面配置的这些环境变量就是为了方便我们买买买。现在购买ECS实例只需要docker-machine create -d aliyunecs <machine name>就可以等待实例从购买到自动配置到可用就行了。

到此,就跟中的操作方式一模一样。

遇到的错误

密码设置过于简单

我只设置了几个数字,创建绝对失败,提示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-aliyunecsdocker-machine-driver,老版本根本没有ECS_INTERNET_CHARGE_TYPE这个选项,所以会自动开成固定宽带,这一天费用就海了去了!

转载于:https://www.cnblogs.com/agichen/p/10433662.html

你可能感兴趣的文章
Linux下查看某个进程的线程数量(转)
查看>>
前端MVC Vue2学习总结(一)——MVC与vue2概要、模板、数据绑定与综合示例
查看>>
Linux安装mysql5.6
查看>>
kafka 主要内容介绍
查看>>
VirtualBox下安装ubuntu server 16.04
查看>>
VMWare虚拟机下为Ubuntu 12.04.1配置静态IP(NAT方式)
查看>>
Linux获取网页源码的几种方法
查看>>
write a python http server & client
查看>>
并非全部的程序猿都适合做技术管理
查看>>
jQuery 效果 - 淡入淡出
查看>>
SSDB图形界面管理工具:phpssdbadmin安装部署
查看>>
how to backup and restore database of SQL Server
查看>>
Hibernate- QBC查询方式
查看>>
【Linux】linux查看日志文件内容命令tail、cat、tac、head、echo
查看>>
php中的或运算
查看>>
位图(BitMap)索引
查看>>
CSS3伪类和伪元素的特性和区别
查看>>
vue实现文章内容过长点击阅读全文功能
查看>>
记一次elementUI Icon 加载无效的问题。并且提示错误 Failed to decode downloaded font:
查看>>
OpenGL之位图的绘制和gluOrtho2D等函数详解
查看>>