©
本文档使用 PHP中文网手册 发布
试用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实例。
如果您还不是AWS用户,请注册AWS若要创建帐户并获取对EC2云计算机的根访问权限,请执行以下操作。 如果您有一个Amazon帐户,您可以使用它作为您的根用户帐户。
创建与区域关联的IAM(身份和访问管理)管理员用户,管理员组和密钥对。
从AWS菜单中选择服务>IAM开始吧。
要在AWS上创建机器,必须提供两个参数:
- an AWS Access Key ID- an AWS Secret Access Key
请参阅使用AmazonEC 2设置遵循“创建IAM用户”和“创建密钥对”的步骤。
或者,创建一个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 create
(使用可选--amazonec2-region
标志)的一部分,那么该区域将是US East,这是默认设置。
在命令终端上运行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)
连接到它。
运行一些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
命令中公开的端口。
要删除实例及其所有容器和图像,请先停止机器,然后使用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机器子命令参考
使用Docker Machine配置Docker Swarm集群