容器服务Docker&Kubernetes + 关注
手机版

阿里云ECS Docker Machine Driver入门指南

  1. 云栖社区>
  2. 容器服务Docker&Kubernetes>
  3. 博客>
  4. 正文

阿里云ECS Docker Machine Driver入门指南

治世 2016-02-25 11:38:55 浏览9602 评论6

摘要: Docker Machine Driver of Aliyun ECS Docker技术目前在无论在社区还是在企业应用中,都有很强烈的反响。为了使得用户可以在阿里云ECS上体验和使用Docker技术,我们开发了相应的Docker Machine驱动。

Docker Machine Driver of Aliyun ECS

Docker技术目前在无论在社区还是在企业应用中,都有很强烈的反响。为了使得用户可以在阿里云ECS上体验和使用Docker技术,我们开发了相应的Docker Machine驱动。
在创建machine之前,首先需要有一对阿里云的安全秘钥以及对应的Region信息。如果想创建VPC网络,还需要有VPC ID和VSwitch ID。相关信息的获取可以通过登录阿里云的控制台,选择相应的产品即可管理对应产品的信息。
接下来我们来详细介绍一下如何使用阿里云ECS的Docker Mahine驱动。

创建Machine命令

docker-machine create -d aliyunecs <machine-name> --options

安装

目前安装阿里云Docker Machine Driver有两种方式。一种是通过go install的方式

go install github.com/denverdino/docker-machine-driver-aliyunecs

同时,我们也提供了编译好的软件包供下载。可以移步到 drone.io选择适合自己平台的软件包

Demo

创建ECS的时候,目前可以有两种方式。第一种是可以通过把一些配置信息设置到环境变量中,在这种场景下,我们可以把一些公共的信息放到环境变量中,这样就无需每次都输入相同的参数。

export ECS_ACCESS_KEY_ID ='<Your access key ID>'
export ECS_ACCESS_KEY_SECRET    ='<Your secret access key>'
export ECS_API_ENDPOINT ='<The custom API endpoint>'
export ECS_DESCRIPTION ='<The description of instance>'
export ECS_DISK_SIZE ='<The data disk size>'
export ECS_DISK_CATEGORY ='<The category of data disk>'


docker-machine create -d aliyunecs <machine-name>

或者,所有的参数都通过命令行参数来传递

docker-machine create -d aliyunecs --aliyunecs-tag provider=aliyuncos --aliyunecs-tag version=1.0 --aliyunecs-disk-size=20 --aliyunecs-io-optimized=optimized --aliyunecs-description=aliyunecs-machine-driver --aliyunecs-instance-type=<InstanceType> --aliyunecs-access-key-id=<Your access key ID for the Aliyun ECS API> --aliyunecs-access-key-secret=<Your secret access key for the Aliyun ECS API>  --aliyunecs-disk-category=<DiskCategory>  --aliyunecs-region=<Region>--aliyunecs-ssh-password=<SSH Password> <machine-name>

参数介绍

可以通过以下的命令来查看,阿里云ECS Docker Machine Driver支持的参数列表

docker-machine create -d aliyunecs --help
Option Name Description required
--aliyunecs-access-key-id Your access key ID for the Aliyun ECS API. yes
--aliyunecs-access-key-secret Your secret access key for the Aliyun ECS API. yes
--aliyunecs-api-endpoint The custom API endpoint.
--aliyunecs-description The description of instance.
--aliyunecs-disk-size The data disk size for /var/lib/docker (in GB)
--aliyunecs-disk-category The category of data disk, the valid values could be cloud (default), cloud_efficiency or cloud_ssd.
--aliyunecs-image-id The image ID of the instance to use Default is the latest Ubuntu 14.04 provided by system
--aliyunecs-io-optimized The I/O optimized instance type, the valid values could be none (default) or optimized
--aliyunecs-instance-type The instance type to run. Default: ecs.t1.small
--aliyunecs-internet-max-bandwidth Maxium bandwidth for Internet access (in Mbps), default 1
--aliyunecs-private-address-only Use the private IP address only
--aliyunecs-region The region to use when launching the instance. Default: cn-hangzhou
--aliyunecs-route-cidr The CIDR to use configure the route entry for the instance in VPC. Sample: 192.168.200.0/24
--aliyunecs-security-group Aliyun security group name. Default: docker-machine
--aliyunecs-slb-id SLB id for instance association
--aliyunecs-ssh-password SSH password for created virtual machine. Default is random generated.
--aliyunecs-system-disk-category System disk category for instance
--aliyunecs-tag Tag for the instance.
--aliyunecs-vpc-id Your VPC ID to launch the instance in. (required for VPC network only)
--aliyunecs-vswitch-id Your VSwitch ID to launch the instance with. (required for VPC network only)
--aliyunecs-zone The availabilty zone to launch the instance

环境变量对应的参数以及默认值

CLI option Environment variable Default
--aliyunecs-access-key-id ECS_ACCESS_KEY_ID -
--aliyunecs-access-key-key ECS_ACCESS_KEY_SECRET -
--aliyunecs-api-endpoint ECS_API_ENDPOINT -
--aliyunecs-description ECS_DESCRIPTION -
--aliyunecs-disk-size ECS_DISK_SIZE -
--aliyunecs-disk-category ECS_DISK_CATEGORY -
--aliyunecs-image-id ECS_IMAGE_ID -
--aliyunecs-aliyunecs-io-optimized ECS_IO_OPTIMIZED none
--aliyunecs-instance-type ECS_INSTANCE_TYPE ecs.t1.small
--aliyunecs-internet-max-bandwidth ECS_INTERNET_MAX_BANDWIDTH 1
--aliyunecs-private-address-only ECS_PRIVATE_ADDR_ONLY false
--aliyunecs-region ECS_REGION cn-hangzhou
--aliyunecs-route-cidr ECS_ROUTE_CIDR -
--aliyunecs-security-group ECS_SECURITY_GROUP -
--aliyunecs-slb-id ECS_SLB_ID -
--aliyunecs-ssh-password ECS_SSH_PASSWORD Random generated
--aliyunecs-tag ECS_TAGS -
--aliyunecs-vpc-id ECS_VPC_ID -
--aliyunecs-vswitch-id ECS_VSWITCH_ID -
--aliyunecs-zone ECS_ZONE -

注:环境变量设置的默认参数都会在运行时被命令行传入的参数替换

内核要求

我们默认的Ubuntu镜像对于需要的内核版本为3.16+,另外一些高级的swarm/networking 功能需要更新的内核版本

可以通过 docker-machine ssh登录到ECS,执行 apt-get install -qy linux-image-generic-lts-wily && reboot来升级内核

代码贡献

获取资源

go get github.com/denverdino/docker-machine-driver-aliyunecs
cd $GOPATH/src/github.com/denverdino/docker-machine-driver-aliyunecs

Driver测试

在测试Driver之前,首先要保证当前的构建目录在$PATH中有高的优先级,以便于docker-machine可以引用到它。

export PATH=$GOPATH/src/github.com/denverdino/docker-machine-driver-aliyunecs:$PATH

相关资源

License

Apache 2.0

【云栖快讯】一站式开发者服务,海量学习资源免费学  详情请点击

网友评论