AliyunContainerService / Docker Machine Driver Aliyunecs
Programming Languages
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