上篇雖然是以WebApps形式呈現但骨子裡是用Docker來做部署,除了直接抓取Docker Hub上images來作為網站服務外也同時來試試放在Azure自家的azure container registry(ACR),單純把外部的image丟到ACR內那為私用後再再讓WebApps來取用.
今天就來玩玩無OS的Container Instances服務吧!
一樣新增資源的地方昨天是ACR...今天是住在樓上的ACI
不免俗先入門簡單部署不能傷害失敗幼小心靈...不過我做了小小改變(本來是預設微軟的HelloWorld改成Ubuntu)
Ubuntu image示範來源在此
這些細項都是需求服務規格,不多贅述直接預設就好
驗證設定是否OK,沒問題就直接部署吧!
部署作業中
部署完成了,到剛剛的資源群組內開啟garyaci
直接來開此URL......ㄎㄠˋ
檢視一下事件動作最後的時間點一直在嘗試重啟....多次
把此garyaci容器給割除...(我不相信...怎麼可能只能用預設image的才能正常)
重新再部署一次,但是Images改成Nginx(雖然還是滿常用的...但至少不是ACI預設映像範例)
看一下新建成功的容器從事件上顯示的跟前次不同,可以很有信心的來測試
確認一下這ACI的前端連線URL
沒有問題了!正常顯示Nginx示範網頁
不過只有這樣怎麼行呢!!這次來點新嘗試自建一個image丟到ACR再透過ACI來部署ACR上此image你說好不好啊!
不過畢竟我自身的Mac環境在安裝Azure CLI真的是問題多多...直接來運用雲端的優勢繞道而行直接用Ubuntu上裝好的Docker,到時候再安裝Azure CLI不就得了
規格測試而已不用太好...但也別太差,不想等到天涯海角,測試環境自己決定吧!
看了一下虛擬網路部份看起來並沒法選擇既有的只能新建而已,就預設嘍!
執行個體IP就是外部IP要開啟,不然我怎麼連....
沒有預建儲存體也無法改名,就預設好了,反正測試而已
對外端點開放連接埠SSH TCP22,先這樣之後需要再開
Docker延伸模組預設也安裝
總算設定完了就確定吧!
安裝好了透過上面的Public IP來SSH連線並登入成功
因為等等需要做事..用剛剛自建的帳戶權限不足,透過此指令sudo su - 直接變更成root身份來執行,一定要來一下Docker指令看一下版本也ping外部IP確認一下環境是否正常
接下來就是一連串生硬的動作:
用 Git 複製範例應用程式的存放庫
git clone https://github.com/Azure-Samples/aci-helloworld.git
用 docker build 命令來建立容器映像,並標記成 aci-tutorial-app
docker build ./aci-helloworld -t aci-tutorial-app
用 docker images 命令查看已建置的映像
docker images
容器部署至 Azure Container Instances 前,先用 docker run 在本機執行確認是否可行
docker run -d -p 8080:80 aci-tutorial-app (Liunx curl測試)
瀏覽器中瀏覽至 http://localhost:8080 ,以確認容器正在執行(因為都是CLI命令列沒法瀏覽器呈現,來順便對外一下,這是一台ASM舊型VM....所以沒有NSG而是透過端點來限制,新增http走8080一筆規則做允許)
規則設定完成
這是透過外部連線他的URL走8080已經OK無誤
登入到目前的ACR
檢查一下裡面的Images...因為範本都大同小異..等等名稱可能怕重複
因為有一筆Docker網頁服務還在Run,直接全部把程序Kill掉
docker rm $(docker ps -all -q)
來一次給它移除全部images...一勞永逸@@下面兩筆有v1的還是Lock
docker rmi $(docker image ls -q)
沒關係暫時不解它..推送前需先對在ubuntu上建立好的image打上Tag並指定為v3版本藉此方便區分
接下來就是用Azure AZ指令才能做事,目前Ubuntu還沒有安裝CLI
Ubuntu是透過apt來安裝Azure CLI
Azure AZ登入,CLI需要認證碼再到提示的指定網站驗證
把驗證碼貼上後確認
已登入CLI成功提示,可以關閉此網頁
因為我自己的Azure帳號綁太多訂閱...請指定剛剛ACR的訂閱環境確認好租用戶ID在登入一次
登入成功並到進到ACR
執行推送從ubuntu做的image到ACR肚子內
docker push /aci-tutorial-app:v3
推送完成並從ACR上來看容器已經有此份v3的映像檔
終於要在透過ACI建立私有的image來部署了...上述的登入資訊在ACR的金鑰上
設置驗證完成就部署吧!
蝦毀...部署失敗...這我已經試了兩三次確定資訊無誤啊
沒關係來用昨天的WebApps在容器服務指定ACR選取剛剛推送上去的Image並存檔
網頁顯示正常就是這Image!
改試試剛剛錯誤部署可以按下重新部署改為自訂欄位來呈現,其實也沒有啥好改的..
好吧!狀況錯誤相同...可能還是有哪個精細的環節沒做好,流程大致如此,先這樣了
可惡就差一步....先這樣,再來查查是哪裡的問題找到再來更新,81