您好,登錄后才能下訂單哦!
Docker中怎么利用Machine創建Azure虛擬主機,相信很多沒有經驗的人對此束手無策,為此本文總結了問題出現的原因和解決方法,通過這篇文章希望你能解決這個問題。
Azure 建議我們把資源通過 resource group 組織起來。為了演示方便,我們新創建一個名為 nickcontainer 的 resource group 存放將要創建的虛機:
此時 resource group 中還沒有任何內容。
創建云端虛機
使用 Docker Machine,一個 create 命令就能搞定:
docker-machine create \ --driver azure \ --azure-environment AzurePublicCloud \ --azure-subscription-id xxxxxxxxxxxxxxxxxxxxxxxxxx \ --azure-location "East Asia" \ --azure-size Standard_A0 \ --azure-image canonical:UbuntuServer:16.04.0-LTS:latest \ --azure-ssh-user nick \ --azure-resource-group nickcontainer \ --azure-availability-set testvmtiggeras \ testvmtigger
使用國內 Azure 的用戶請把參數 --azure-environment AzurePublicCloud 修改為 --azure-environment AzureChinaCloud。
執行上面的命令,首先會驗證我們是否有權限訪問 Azure 進行操作:
這時執行流程停住了,上圖的輸出中說的很明確,需要在瀏覽器中訪問 https://aka.ms/devicelogin,然后輸入一個驗證碼:
填入驗證碼并繼續:
在此處輸入你的訂閱賬號和密碼就可以進完成身份驗證了:
此時身份認證過程已經完成,可以關掉瀏覽器了。回到剛才的命令行,發現又接著往下執行了。整個過程大概需要幾分鐘,直到輸出下面的內容:
讓我們看看虛機 testvmtigger 的狀態:
已經處于 "Runing" 狀態,連上 Docker daemon 試試:
可以看到服務器端的版本是 17.05.0-ce,遠高于本地客戶端的版本。
再讓我們回到 Azure 的 portal 上,看看 resource group 中新創建了哪些內容:
一看嚇一跳,怎么這么多東西?其實玩過 Azure 虛機的同學都知道,當我們創建一臺虛機的同時會創建這臺虛機依賴的所有資源,比如存儲、虛擬網絡、網絡安全組、可用性集合、網卡、公有IP地址等等。這里我們只關心兩點(上圖中的紅框框)就足夠了:第一,虛機被成功創建了;第二,所有資源的區域都在東亞。
經過一輪檢查,我們可以確定 create 命令很好的完成了任務:在 Azure 上創建了虛機,并且安裝了 Docker 環境。下面我們解釋一下 create 命令中主要的幾個參數。
參數詳解
--driver azure
driver 參數告訴 Docker Machine 我們操作的對象在 Azure 云上,需要使用 Azure 相關的接口來進行操作。
--azure-environment AzurePublicCloud
其實存在多套相互獨立的 Azure 云環境,比如國內的。所以需要用這個參數來指定具體的 Azure 云環境。默認值是 AzurePublicCloud,指向我們說的 Azure 國際版。連接國內版需要指定為 AzureChinaCloud。
--azure-subscription-id xxxxxxxxxxxxxxxxxxxxxxxxxx
這個是與你賬號關聯的訂閱 ID,Azure 內部的操作都是依賴于這個 ID 的。
--azure-location "East Asia"
Azure 在全球各地部署了很多的數據中心,我們可以通過 location 指定創建的資源所在的位置。這個位置當然是越靠近用戶越好,國內的國際版用戶選擇東亞稍微好一點。
--azure-size Standard_A0
Azuer 根據不同的 size(其實就是配置)對虛擬機進行收費,demo 中選擇的 Standard_A0 大概是這個樣子:
雖然配置不高,但作為 demo 來說已經足夠用了。MS 提供了非常豐富的 size 可供選擇,如果你要創建生產環境的虛機實例,可能需要選擇每個月幾十到幾百美金的實例。
--azure-image canonical:UbuntuServer:16.04.0-LTS:latest
對于生產環境來說,虛機的鏡像是至關重要的。Demo 中使用了 ubuntu server 16.04 的鏡像,當然我們可以在這里指定 Azure 支持的任何虛擬機鏡像。這點可比只能使用 boot2docker 的驅動強多了!
--azure-ssh-user nick
可以通過 SSH 登錄到虛擬機中的用戶,讓我們試一下:
直接以用戶 nick 登錄成功了,其實 Docker Machine 已經為這個用戶配置了通過秘鑰登錄的相關信息。
--azure-resource-group nickcontainer
新創建的資源所屬的 resource group。
清除資源
Docker Machine 不僅可以創建虛機,還可以管理虛機。所謂的管理,僅僅是能夠 stop、start 和 restart 嗎?答案是可以有更多的功能,但是需要相關驅動的支持。比如 rm 命令,對于 azure 驅動來說,它是可以把剛才創建那一坨東西幾乎全部干掉的!執行下面的命令:
$ docker-machine rm testvmtigger
這是一個很危險的操作,所以會有一個確認執行的步驟,然后就真的把 Azure 上的資源給干掉了(除了存儲部分):
看完上述內容,你們掌握Docker中怎么利用Machine創建Azure虛擬主機的方法了嗎?如果還想學到更多技能或想了解更多相關內容,歡迎關注億速云行業資訊頻道,感謝各位的閱讀!
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。