配置AWS EC2实例(机器) | Provision AWS EC2 instances (Machine)
亚马逊网络服务(AWS)EC2示例
试用Docker Cloud!我们建议使用Docker Cloud作为在您的云提供商上运行Docker的最新方式。要开始,请参阅Docker Cloud文档主页,Docker Cloud Settings和Docker ID,Docker Cloud(Beta)中的Swarms以及将Amazon Web Services连接到Docker Cloud。如果您正在运行适用于Mac或Windows的Edge通道Docker,则可以从这些Docker桌面应用程序访问您的Docker Cloud帐户。请参阅Mac或Windows上的Docker Cloud(Edge功能)。Docker机器仍然可以按照此处所述的方式工作,但Docker Cloud为此目的而取代机器。
请跟随此示例来创建一个Docker化Amazon Web Services(AWS) EC2实例。
步骤1.注册AWS并配置凭据
- 创建与区域关联的IAM(身份和访问管理)管理员用户,管理员组和密钥对。
从AWS菜单中选择服务>IAM开始吧。
要在AWS上创建机器,必须提供两个参数:
- an AWS Access Key ID
- an AWS Secret Access Key
请参阅使用AmazonEC 2设置遵循“创建IAM用户”和“创建密钥对”的步骤。
步骤2.使用机器创建实例
- 或者,创建一个AWS凭证文件。您可以创建一个
~/.aws/credentials
文件来保存您的AWS密钥,以便您不必在每次运行docker-machine create
命令时都键入它们。这是一个凭证文件的例子。默认aws_access_key_id = AKID1234567890 aws_secret_access_key = MY-SECRET-KEY
- 运行
docker-machine create
与amazonec2
驱动程序,你的钥匙,并为新的实例的名称。
使用凭据文件
如果您在凭证文件中指定了您的密钥,则此命令将如下所示创建一个名为的实例aws-sandbox
:
docker-machine create --driver amazonec2 aws-sandbox
在命令行指定键
如果您没有凭据文件,可以使用这些标志--amazonec2-access-key
和--amazonec2-secret-key
在命令行上:
$ docker-machine create --driver amazonec2 --amazonec2-access-key AKI\*\*\*\*\*\*\* --amazonec2-secret-key 8T93C\*\*\*\*\*\*\* aws-sandbox
指定区域
默认情况下,驱动程序在us-east-1(北弗吉尼亚州)区域创建新实例。您可以使用该--amazonec2-region
标志指定不同的区域。例如,该命令在us-west-1(北加利福尼亚州)创建一台名为“aws-01”的机器。
$ docker-machine create --driver amazonec2 --amazonec2-region us-west-1 aws-01
- 转到AWS EC2仪表板查看新实例。使用您的IAM凭证登录AWS,然后导航到您的EC2运行实例。
- 在命令终端上运行
docker-machine ls
。
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS aws-sandbox * amazonec2运行tcp://52.90.113.128:2376 v1.10.0默认 - virtualbox运行tcp://192.168.99.100:2376 v1.10.0-rc4 aws -sandbox - digitalocean运行tcp://104.131.43.236:2376 v1.9.1
新aws-sandbox
实例正在运行,并且它是活动主机,如星号(*)所示。当你创建一台新机器时,你的命令行程序会自动连接到它。如果由于某种原因,您的新机器不是活动主机,您需要运行docker-machine env aws-sandbox
,然后eval $(docker-machine env aws-sandbox)
连接到它。
步骤3.在实例上运行Docker命令
- 运行一些docker-machine命令来检查远程主机。例如,docker-machine ip <machine>获取主机IP地址并docker-machine inspect <machine>列出所有详细信息。$ docker-machine ip 192.168.99.100 $ docker-machine inspect aws-sandbox {“ConfigVersion”:3,“Driver”:{“IPAddress”:“52.90.113.128”,“MachineName”:“aws-sandbox”,“SSHUser “:”ubuntu“,”SSHPort“:22,...
- 通过运行验证码头引擎是否正确安装
docker
命令。
从一些基本的东西开始,比如docker run hello-world
,或者为了进行更有趣的测试,请在新的远程计算机上运行一个Dockerizedwebserver。
注意
:我们8000
在此示例中使用端口,并且该端口已添加到与docker-machine关联的AWS Security Group。如果您想在另一个端口上运行容器,则需要更新安全组以反映该问题。
在此示例中,该-p
选项用于从nginx
容器中公开端口80,并使其可以在主机的端口8000
上访问aws-sandbox
。
$ docker run -d -p 8000:80 - 名称webserver kitematic / hello-world-nginx无法找到本地最新的图像'kitematic / hello-world-nginx:latest':从kitematic / hello-world-nginx中拉出a285d7f063ea:拉完成2d7baf27389b:拉完成...摘要:sha256:ec0ca6dcb034916784c988b4f2432716e2e92b995ac606e080c7a54b52b87066状态:下载较新的形象为kitematic / hello-world-nginx:最新的942dfb4a0eaae75bf26c9785ade4ff47ceb2ec2a152be82b9d7960e8b5777e65
在Web浏览器中,转到调http://<host_ip>:8000出Web服务器主页。您<host_ip>从docker-machine ip <machine>上一步中运行的命令的输出中获得了该信息。使用您在该docker run命令中公开的端口。
步骤4.使用机器删除实例
要删除实例及其所有容器和图像,请先停止机器,然后使用docker-machine rm
:
$ docker-machine stop aws-sandbox
$ docker-machine rm aws-sandbox
Do you really want to remove "aws-sandbox"? (y/n): y
Successfully removed aws-sandbox ## Where to go next
- 理解机器概念
- Docker机器驱动程序参考
- Docker机器子命令参考