?
This document uses PHP Chinese website manual Release
試用Docker Cloud!
我們建議使用Docker Cloud作為在您的云提供商上運(yùn)行Docker的最新方式。要開始使用,請參閱Docker Cloud文檔主頁,Docker Cloud Settings和Docker ID,以及將DigitalOcean帳戶與Docker Cloud相關(guān)聯(lián)。如果您正在運(yùn)行適用于Mac或Windows的Edge通道Docker,則可以從這些Docker桌面應(yīng)用程序訪問您的Docker Cloud帳戶。請參閱Mac或Windows上的Docker Cloud(Edge功能)。
Docker Machine仍然可以按照下面的描述工作,但Docker Cloud為此目的而取代機(jī)器。
跟隨此示例創(chuàng)建一個Dockerized Digital Ocean液滴(云主機(jī))。
如果您還沒有這樣做,請?jiān)L問Digital Ocean,創(chuàng)建一個帳戶,并登錄。
若要生成訪問令牌,請執(zhí)行以下操作:
轉(zhuǎn)到Digital Ocean管理員控制臺并在標(biāo)題中單擊API。
點(diǎn)擊生成新令牌才能到達(dá)令牌發(fā)生器。
給令牌一個聰明的名字(例如“機(jī)器”),確保Write(可選)復(fù)選框被選中,然后點(diǎn)擊Generate Token。
抓?。◤?fù)制到剪貼板)生成的大長十六進(jìn)制字符串并將其存儲在安全的地方。
這是您在下一步創(chuàng)建云服務(wù)器時將使用的個人訪問令牌。
docker-machine create
與digitalocean
驅(qū)動程序一起運(yùn)行并將密鑰傳遞給--digitalocean-access-token
標(biāo)志以及新的云服務(wù)器的名稱。
對于這個例子,我們會打電話給我們新的Droplet“docker-sandbox”。
$ docker-machine create --driver digitalocean --digitalocean-access-token xxxxx docker-sandbox運(yùn)行預(yù)創(chuàng)建檢查...創(chuàng)建機(jī)器...(docker-sandbox)OUT | 創(chuàng)建SSH密鑰...(docker-sandbox)OUT | 創(chuàng)建Digital Ocean液滴...(docker-sandbox)OUT | 等待IP地址分配給Droplet ...等待機(jī)器運(yùn)行,這可能需要幾分鐘的時間...機(jī)器正在運(yùn)行,等待SSH可用...檢測創(chuàng)建實(shí)例的操作系統(tǒng).. 。檢測Provisioner ... Provisioning創(chuàng)建的實(shí)例...將證書復(fù)制到本地機(jī)器目錄...將證書復(fù)制到遠(yuǎn)程機(jī)器...在遠(yuǎn)程守護(hù)進(jìn)程上設(shè)置Docker配置...了解如何將Docker連接到此機(jī)器,運(yùn)行:~/.docker/machines。
最初,這用于配置主機(jī)。之后,它會在docker-machine ssh指令下直接訪問Droplet 。Docker Engine安裝在云服務(wù)器上,守護(hù)程序配置為通過TCP接受遠(yuǎn)程連接,使用TLS進(jìn)行身份驗(yàn)證。
轉(zhuǎn)到Digital Ocean控制臺查看新的液滴。
在命令終端,運(yùn)行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
機(jī)器正在運(yùn)行,并且它是活動的如星號(*)所示。當(dāng)你創(chuàng)建一臺新機(jī)器時,你的命令行程序會自動連接到它。如果由于某種原因,您的新機(jī)器不是主動主機(jī),則需要運(yùn)行docker-machine env docker-sandbox,然后eval $(docker-machine env docker-sandbox)連接到它。步驟4.在Droplet上運(yùn)行Docker命令
運(yùn)行一些docker-machine
命令來檢查遠(yuǎn)程主機(jī)。例如,docker-machine ip <machine>
獲取主機(jī)IP地址并docker-machine inspect <machine>
列出所有詳細(xì)信息。
$ 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.通過運(yùn)行docker命令驗(yàn)證Docker Engine是否正確安裝。
從一些基本的東西開始docker run hello-world,或者為了更有趣的測試,在新的遠(yuǎn)程機(jī)器上運(yùn)行Dockerized Web服務(wù)器。
在本例中,該-p選項(xiàng)用于從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 狀態(tài):為kitematic/hello-world-nginx下載更新的圖像:最新942dfb4a0eaae75bf26c9785ade4ff47ceb2ec2a152be82b9d7960e8b5777e65
在Web瀏覽器,進(jìn)入http://<host_ip>:8000彈出Web服務(wù)器主頁。您<host_ip>從docker-machine ip <machine>上一步中運(yùn)行的命令的輸出中獲得了該信息。使用您在該docker run命令中公開的端口。
第5步。使用機(jī)器刪除Droplet要刪除主機(jī)及其所有容器和圖像,請先停止機(jī)器,然后使用docker-machine rm:
$ docker-machine rm docker-sandbox
您真的要刪除嗎? “docker-sandbox”?(y / n):y
成功移除docker-sandbox
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM
默認(rèn) * virtualbox運(yùn)行tcp:////xxx.xxx.xx.xxx:xxxx如果您在監(jiān)控Digital Ocean控制臺的同時運(yùn)行這些命令,您會首先看到它更新,以反映Droplet已停止,然后被刪除。如果您使用Docker Machine創(chuàng)建主機(jī),但通過云提供程序控制臺刪除它,Machine將失去跟蹤服務(wù)器狀態(tài)的信息。所以請使用docker-machine rm
創(chuàng)建的主機(jī)的命令docker-machine create
。下一步去哪里
理解機(jī)器概念
Docker機(jī)器驅(qū)動程序參考
Docker Machine子命令參考
使用Docker Machine配置Docker Swarm集群