©
本文档使用
php.cn手册 发布
试用Docker Cloud!
我们建议使用Docker Cloud作为在您的云提供商上运行Docker的最新方式。要开始使用,请参阅Docker Cloud文档主页,Docker Cloud Settings和Docker ID,以及将DigitalOcean帐户与Docker Cloud相关联。如果您正在运行适用于Mac或Windows的Edge通道Docker,则可以从这些Docker桌面应用程序访问您的Docker Cloud帐户。请参阅Mac或Windows上的Docker Cloud(Edge功能)。
Docker Machine仍然可以按照下面的描述工作,但Docker Cloud为此目的而取代机器。
跟随此示例创建一个Dockerized Digital Ocean液滴(云主机)。
如果您还没有这样做,请访问Digital Ocean,创建一个帐户,并登录。
若要生成访问令牌,请执行以下操作:
转到Digital Ocean管理员控制台并在标题中单击API。
点击生成新令牌才能到达令牌发生器。
给令牌一个聪明的名字(例如“机器”),确保Write(可选)复选框被选中,然后点击Generate Token。
抓取(复制到剪贴板)生成的大长十六进制字符串并将其存储在安全的地方。
这是您在下一步创建云服务器时将使用的个人访问令牌。
docker-machine create
与digitalocean
驱动程序一起运行并将密钥传递给--digitalocean-access-token
标志以及新的云服务器的名称。
对于这个例子,我们会打电话给我们新的Droplet“docker-sandbox”。
$ docker-machine create --driver digitalocean --digitalocean-access-token xxxxx docker-sandbox运行预创建检查...创建机器...(docker-sandbox)OUT | 创建SSH密钥...(docker-sandbox)OUT | 创建Digital Ocean液滴...(docker-sandbox)OUT | 等待IP地址分配给Droplet ...等待机器运行,这可能需要几分钟的时间...机器正在运行,等待SSH可用...检测创建实例的操作系统.. 。检测Provisioner ... Provisioning创建的实例...将证书复制到本地机器目录...将证书复制到远程机器...在远程守护进程上设置Docker配置...了解如何将Docker连接到此机器,运行:~/.docker/machines。
最初,这用于配置主机。之后,它会在docker-machine ssh指令下直接访问Droplet 。Docker Engine安装在云服务器上,守护程序配置为通过TCP接受远程连接,使用TLS进行身份验证。
转到Digital Ocean控制台查看新的液滴。
在命令终端,运行docker-machine ls
.
$ docker-machine ls NAME ACTIVE DRIVER STATE URL SWARM default - virtualbox Running tcp://192.168.99.100:2376 docker-sandbox * digitalocean Running tcp://45.55.139.48:2376
新docker-sandbox
机器正在运行,并且它是活动的如星号(*)所示。当你创建一台新机器时,你的命令行程序会自动连接到它。如果由于某种原因,您的新机器不是主动主机,则需要运行docker-machine env docker-sandbox,然后eval $(docker-machine env docker-sandbox)连接到它。步骤4.在Droplet上运行Docker命令
运行一些docker-machine
命令来检查远程主机。例如,docker-machine ip <machine>
获取主机IP地址并docker-machine inspect <machine>
列出所有详细信息。
$ docker-machine ip docker-sandbox 104.131.43.236 $ docker-machine inspect docker-sandbox { "ConfigVersion": 3, "Driver": { "IPAddress": "104.131.43.236", "MachineName": "docker-sandbox", "SSHUser": "root", "SSHPort": 22, "SSHKeyPath": "/Users/samanthastevens/.docker/machine/machines/docker-sandbox/id_rsa", "StorePath": "/Users/samanthastevens/.docker/machine", "SwarmMaster": false, "SwarmHost": "tcp://0.0.0.0:3376", "SwarmDiscovery": "", ...
Verify Docker Engine is installed correctly by running docker
commands.通过运行docker命令验证Docker Engine是否正确安装。
从一些基本的东西开始docker run hello-world,或者为了更有趣的测试,在新的远程机器上运行Dockerized Web服务器。
在本例中,该-p选项用于从nginx容器中公开端口80,并使其可以在端口8000上访问docker-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命令中公开的端口。
第5步。使用机器删除Droplet要删除主机及其所有容器和图像,请先停止机器,然后使用docker-machine rm:
$ docker-machine rm docker-sandbox
您真的要删除吗? “docker-sandbox”?(y / n):y
成功移除docker-sandbox
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
默认 * virtualbox运行tcp:////xxx.xxx.xx.xxx:xxxx如果您在监控Digital Ocean控制台的同时运行这些命令,您会首先看到它更新,以反映Droplet已停止,然后被删除。如果您使用Docker Machine创建主机,但通过云提供程序控制台删除它,Machine将失去跟踪服务器状态的信息。所以请使用docker-machine rm
创建的主机的命令docker-machine create
。下一步去哪里
理解机器概念
Docker机器驱动程序参考
Docker Machine子命令参考
使用Docker Machine配置Docker Swarm集群