Docker Machine Driver of Aliyun ECS
Create machines on Aliyun Elastic Compute Service (ECS). You will need an Access Key ID, Secret Access Key and a Region ID. If you want to setup instance on the VPC network, you will need the VPC ID and VSwitch ID; Please login to the Aliyun console -> Products and Services -> VPC and select the one where you would like to launch the instance.
creates docker instances on Aliyun ECS.
docker-machine create -d aliyunecs machine-aliyunecs
Installation
The easiest way to install the aliyun docker-machine driver is to:
go get github.com/AliyunContainerService/docker-machine-driver-aliyunecs
binaries also available,you can download from below links:
-
Mac OSX 64 bit: docker-machine-driver-aliyunecs_darwin-amd64
-
Linux 64 bit: docker-machine-driver-aliyunecs_linux-amd64
-
Windows 64 bit: docker-machine-driver-aliyunecs_windows-amd64
How to install docker-machine-driver-aliyunecs binary packages on different platforms.
-
Download the binary package for the corresponding platform. We currently support Windows, Linux, and MAC platforms
-
Extract the donload package
eg. Take the Mac platform for example
tar zxvf docker-machine-driver-aliyunecs_darwin-amd64.tgz
-
Rename the executable
#Windows docker-machine-driver-aliyunecs.windows-amd64 => docker-machine-driver-aliyunecs.exe #Linux docker-machine-driver-aliyunecs.linux-amd64 => docker-machine-driver-aliyunecs #Mac docker-machine-driver-aliyunecs.darwin-amd64 => docker-machine-driver-aliyunecs
-
Add docker-machine driver to the environment variables.
export PATH=<Your Local Path>/docker-machine-driver-aliyunecs[.exe]:$PATH
Example Usage
eg. Export your credentials into your shell environment
export ECS_ACCESS_KEY_ID='<Your access key ID>'
export ECS_ACCESS_KEY_SECRET='<Your secret access key>'
export ECS_REGION='<Your region>'
# Using mirrors from Aliyun
export MACHINE_DOCKER_INSTALL_URL=http://kubernetes.oss-cn-hangzhou.aliyuncs.com/docker_install.sh
export ENGINE_REGISTRY_MIRROR=https://registry.docker-cn.com
docker-machine create -d aliyunecs <machine-name>
or pass as cmdline flags
docker-machine create -d aliyunecs --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-region=<Region> <machine-name>
Examples
using SSH key pair
docker-machine create -d aliyunecs --aliyunecs-ssh-keypair test_keypair --aliyunecs-ssh-keypath ~/.ssh/id_rsa test
custom docker engine config
docker-machine create -d aliyunecs --engine-storage-driver overlay2 test
custom OS config
docker-machine create -d aliyunecs --aliyunecs-image-id centos_7_04_64_20G_alibase_201701015.vhd test
attach data disk for Docker containers
docker-machine create -d aliyunecs --engine-storage-driver overlay2 --aliyunecs-disk-size 40 --aliyunecs-disk-fs xfs test
Options
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-fs |
The file system for data disk (ext4 or xfs). | |
--aliyunecs-disk-category |
The category of data disk, the valid values could be cloud (default), cloud_efficiency or cloud_ssd . |
|
--aliyunecs-system-disk-size |
The system disk size for /var/lib/docker (in GB) | |
--aliyunecs-system-disk-category |
The category of system 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 16.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.n4.small |
|
--aliyunecs-internet-max-bandwidth |
Maximum bandwidth for Internet access (in Mbps), default 1 | |
--aliyunecs-internet-charge-type |
Internet charge type, the valid values could be PayByTraffic (default) or PayByBandwidth |
|
--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-ssh-keypair |
SSH key pair name | |
--aliyunecs-ssh-keypath |
File path of SSH private key | |
--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 availability zone to launch the instance |
Environment variables and default values:
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-disk-fs |
ECS_DISK_FS |
ext4 |
--aliyunecs-system-disk-size |
ECS_SYSTEM_DISK_SIZE |
- |
--aliyunecs-system-disk-category |
ECS_SYSTEM_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-internet-charge-type |
ECS_INTERNET_CHARGE_TYPE |
PayByTraffic |
--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-ssh-keypair |
ECS_SSH_KEYPAIR |
- |
--aliyunecs-ssh-keypath |
ECS_SSH_KEYPATH |
- |
--aliyunecs-tag |
ECS_TAGS |
- |
--aliyunecs-vpc-id |
ECS_VPC_ID |
- |
--aliyunecs-vswitch-id |
ECS_VSWITCH_ID |
- |
--aliyunecs-zone |
ECS_ZONE |
- |
Each environment variable may be overloaded by its option equivalent at runtime.
OS
The default OS is Ubuntu 16.04, and you can select your preferred image-id
Hacking
Get the sources
go get github.com/AliyunContainerService/docker-machine-driver-aliyunecs
cd $GOPATH/src/github.com/AliyunContainerService/docker-machine-driver-aliyunecs
Test the driver
To test the driver make sure your current build directory has the highest
priority in your $PATH
so that docker-machine can find it.
export PATH=$GOPATH/src/github.com/AliyunContainerService/docker-machine-driver-aliyunecs:$PATH
Related links
- Docker Machine: https://docs.docker.com/machine/
- Contribute: https://github.com/AliyunContainerService/docker-machine-driver-aliyunecs
- Report bugs: https://github.com/AliyunContainerService/docker-machine-driver-aliyunecs/issues
License
Apache 2.0