Docker 17
机器 | Machine

亚马逊网络服务(机器) | Amazon Web Services (Machine)

AmazonWeb服务

AmazonWeb服务...

创建机器AmazonWeb服务,您必须提供两个参数:AWS访问密钥ID和AWS秘密访问密钥。

配置凭据

在使用amazonc 2驱动程序之前,请确保您已经配置了凭据。

AWS凭证文件

配置凭据的一种方法是为AmazonAWS使用标准凭据文件~/.aws/credentials文件,该文件可能如下所示:

[default] aws_access_key_id = AKID1234567890 aws_secret_access_key = MY-SECRET-KEY

在mac OS或各种类型的linux上,您可以安装AWS命令行接口%28aws cli%29在终端中使用aws configure命令,它指导您创建凭据文件。

这是最简单的方法,然后您可以使用以下方法创建一台新机器:

$ docker-machine create --driver amazonec2 aws01

命令行标志

或者,您可以使用这些标志。--amazonec2-access-key--amazonec2-secret-key在命令行上:

$ docker-machine create --driver amazonec2 --amazonec2-access-key AKI******* --amazonec2-secret-key 8T93C******* aws01

环境变量

您可以使用环境变量:

$ export AWS_ACCESS_KEY_ID=AKID1234567890 $ export AWS_SECRET_ACCESS_KEY=MY-SECRET-KEY $ docker-machine create --driver amazonec2 aws01

备选方案

  • --amazonec2-access-key::AmazonWebServicesAPI的访问密钥ID。

  • --amazonec2-ami要使用的实例的AMI ID。

  • --amazonec2-block-duration-minutes:AWS SPOT实例持续时间(分钟为%2860、120、180、240、300或360%29)。

  • --amazonec2-device-name实例的根设备名称。

  • --amazonec2-endpoint:可选端点URL%28主机名或完全限定URI%29

  • --amazonec2-iam-instance-profileAWS IAM角色名用作实例概要文件。

  • --amazonec2-insecure-transport:在发送请求时禁用SSL

  • --amazonec2-instance-type要运行的实例类型。

  • --amazonec2-keypair-name使用AWS键盘;需要-amazonec2-ssh-keypath

  • --amazonec2-monitoring*启用云监视监视。

  • --amazonec2-open-port::使指定的端口号可从因特网访问。

  • --amazonec2-private-address-only::仅使用专用IP地址。

  • --amazonec2-region启动实例时要使用的区域。

  • --amazonec2-request-spot-instance*使用SPOT实例。

  • --amazonec2-retries:为可恢复故障设置重试计数%28use-1以禁用%29

  • --amazonec2-root-size实例%28的根磁盘大小(GB%29)。

  • --amazonec2-secret-key::AmazonWebServicesAPI的秘密访问密钥。

  • --amazonec2-security-group:AWS VPC安全组名称。

  • --amazonec2-session-token::AmazonWebServicesAPI的会话令牌。

  • --amazonec2-spot-price:竞价型实例竞标价格(以美元计)。要求--amazonec2-request-spot-instance国旗。

  • --amazonec2-ssh-keypath例如,要使用的专用密钥文件的路径。将公钥与。酒吧扩展应该存在

  • --amazonec2-ssh-user:SSH登录用户名,它必须与所使用的ami中的默认SSH用户集相匹配。

  • --amazonec2-subnet-id:AWS VPC子网ID。

  • --amazonec2-tags:AWS额外标签键值对(逗号分隔,例如key1,value1,key2,value2)。

  • --amazonec2-use-ebs-optimized-instance::创建一个EBS优化实例,实例类型必须支持它。

  • --amazonec2-use-private-address使用专用IP地址的对接机,但仍然创建一个公共IP地址.

  • --amazonec2-userdata使用云init用户数据进行文件的路径。

  • --amazonec2-volume-type::要附加到实例的AmazonEBS卷类型。

  • --amazonec2-vpc-id:您的vpc ID启动实例。

  • --amazonec2-zone:在AWS区域中启动实例(即a,b,c,d,e中的一个)。

环境变量和默认值:

CLI选项环境变量默认
--amazonec2接入密钥AWS_ACCESS_KEY_ID-
--amazonec2秘密密钥AWS_SECRET_ACCESS_KEY-
--amazonec2会话令牌AWS_SESSION_TOKEN-
--amazonec2-朋友AWS_AMIami-5f709f34
--amazonec2区域AWS_DEFAULT_REGION美国 - 东 - 1
--amazonec2-VPC-IDAWS_VPC_ID-
--amazonec2区AWS_ZONE一个
--amazonec2子网的IDAWS_SUBNET_ID-
--amazonec2安全组AWS_SECURITY_GROUPdocker-machine
--amazonec2标签AWS_TAGS-
--amazonec2实例型AWS_INSTANCE_TYPEt2.micro
--amazonec2-设备名称AWS_DEVICE_NAME/ dev / sda1
--amazonec2根尺寸AWS_ROOT_SIZE16
--amazonec2容量式AWS_VOLUME_TYPEGP2
--amazonec2-IAM实例瞩目AWS_INSTANCE_PROFILE-
--amazonec2-SSH用户AWS_SSH_USERUbuntu
--amazonec2请求现场实例-
--amazonec2-现货价格-0.50
--amazonec2 - 使用 - 私人地址-
--amazonec2-私人地址,只-
--amazonec2监控-
--amazonec2使用-EBS优化实例-
--amazonec2-SSH-的keyPathAWS_SSH_KEYPATH-
--amazonec2重试次数-5

默认AMI

默认情况下,AmazonEC 2驱动程序将使用Ubuntu 16.04 lts的每日映像。

地区AMI ID
ap-northeast-1ami-b36d4edd
ap-southeast-1ami-1069af73
ap-southeast-2ami-1d336a7e
ca-central-1ami-ca6ddfae
cn-north-1ami-79eb2214
eu-west-1ami-8aa67cf9
eu-central-1ami-fe408091
sa-east-1ami-185de774
us-east-1ami-26d5af4c
us-west-1ami-9cbcd2fc
us-west-2ami-16b1a077
us-gov-west-1ami-b0bad893

安全小组

注意,将创建一个安全组并将其与主机相关联。此安全组将打开以下入站端口:

  • ssh (22/tcp)

  • docker (2376/tcp)

  • swarm(3376 / tcp),只有当该节点是swarm主节点时

如果使用--amazonec2-security-group标志,将检查和打开上述端口,并修改安全组。如果您希望打开更多端口,比如特定于应用程序的端口,请使用AWS控制台并手动修改配置。

VPC ID

我们在命令开始时确定默认的VPC ID。在某些情况下,由于您的帐户没有默认的vpc,或者您不想使用默认的vpc,您可以使用--amazonec2-vpc-id旗子。

若要查找VPC ID,请执行以下操作:

  • 登录到AWS控制台

  • 转到服务 - > VPC - >您的VPC。

  • VPC列中找到您想要的VPC ID 。

  • 去服务->vpc->子网.检查可用区列来验证该区域。a存在并匹配您的VPC ID。

例如,us-east1-aa可用性区域。如果a区域不存在,您可以在该区域中创建一个新的子网,或者在创建计算机时指定一个不同的区域。

若要创建具有非默认vpc-ID的计算机:

$ docker-machine create --driver amazonec2 --amazonec2-access-key AKI******* --amazonec2-secret-key 8T93C********* --amazonec2-vpc-id vpc-****** aws02

此示例假定VPC ID位于a可用性区域。使用--amazonec2-zone属性以外的区域。a区域。例如,--amazonec2-zone c意指us-east1-c...

VPC连通性

机器使用SSH来完成EC2中实例的设置,并要求能够直接访问实例。

如果您使用该标志--amazonec2-private-address-only,则需要确保您有一些方法可以从VPC的内部网络中访问新实例(例如,公司VPN到VPC,VPC内的VPN实例或使用Docker-machine您的VPC中的一个实例)。

vpc的配置超出了本指南的范围,但是故障排除的第一步是确保如果您使用的是私有子网,那么您将遵循AWS VPC用户指南并有某种形式的NAT可用,使设置进程可以访问互联网完成设置。

自定义AMI和SSH用户名

默认AMI的默认SSH用户名是ubuntu

只有当您使用的自定义AMI具有不同的SSH用户名时,才需要更改SSH用户名。

您可以--amazonec2-ssh-user根据您选择的AMI 更改SSH用户名--amazonec2-ami

机器亚马逊网络服务驱动程序