本教程的前七篇文章: 以及通過這篇文章的介紹,,我們深入學習了 Docker 技術的三大要點,。 從本文開始,,我們將分享一些在 Windows 操作系統下的 Docker 實戰(zhàn)演練,。 練習1:如何在 Windows 操作系統下使用 Docker 運行一個 Web 應用本教程之前的文章,,介紹的步驟全是在 Ubuntu 操作系統下使用 Docker 的步驟。本練習方便那些使用 Windows 操作系統的學習者,,了解如何在 Windows 操作系統下使用 Docker. 這里的 Windows 特指 Windows 10. Windows 操作系統使用 Docker 的前提是要開啟 Hyper V 虛擬技術,,在控制面板里把 Hyper-V 前面的勾選中,重啟即可,。 Docker 官網下載 Docker For Windows 的 Community 版本: 下載下來是一個 900 多兆的可執(zhí)行文件: 安裝后,,在右下角任務欄里能看到 Docker 的圖標: 安裝默認會把 Docker 命令行工具 docker.exe 和容器編排工具 docker-compose.exe 安裝到 Program Files 的 Docker 文件夾內: 右鍵可以使用 GUI 的方式來管理: 但我們一般情況下還是更習慣于使用命令行工具 docker.exe 對各種容器鏡像進行操作。 筆者已經事先開發(fā)好了一個 SAP UI5 應用,,將其部署并運行在 Nginx 服務器上,,并且把該應用和 Nginx 服務器一起打包在一個容器鏡像內,并發(fā)布到 Docker Hub 上了,,該鏡像名稱如下: 命令行里直接運行這個鏡像即可: docker run i042416/ui5-nginx:v2.0 從命令打印日志能看出,,因為我的本地環(huán)境沒有這個名為 i042416/ui5-nginx ,標簽為 v2.0的鏡像,,因此首先會自動從 Docker Hub 將鏡像下載到本地,。 之后使用 docker images 命令就能看到這個成功下載到本地的鏡像了,大小約為 109MB: 現在使用如下的命令行啟動一個容器: docker run -d -p 1080:80 --name jerrynginx i042416/ui5-nginx:v2.0 各參數含義如下: -d: 以后臺模式啟動容器,,返回其 ID. -p: 將容器內部 Nginx 開放的端口 80 映射到宿主機端口 1080,,這樣宿主機即 Windows 環(huán)境下通過瀏覽器輸入 localhost:1080 訪問該容器。 --name: 給啟動的容器實例取一個名字,。 執(zhí)行完命令行之后,,瀏覽器輸入如下 url,,即可訪問到運行在容器內的 Nginx 之上的 SAP UI5 應用: docker ps 命令,能看到這個處于運行狀態(tài)的容器實例: docker inspect jerrynginx 能查看明細: 在 Windows Docker Desktop 的 Dashboard 菜單里能觀察到這個名為 jerrynginx,,處于后臺運行狀態(tài)下的容器實例: 該 Dashboard 提供了針對運行時容器實例的一些基礎操作,,比如查看日志: 以及登入容器實例內部,以交互式方式執(zhí)行命令行等功能,。這些功能均對應有 Docker 命令行工具的實現,,可以根據喜好來選擇使用。 練習2:Windows 10 啟動 Docker Desktop 時出現 WSL 2 installation is incomplete 的錯誤消息我的 Windows10 操作系統,,安裝完 Docker Desktop,,啟動后出現下面的提示窗口: WSL 2 installation is incomplete 把這個 WSL2 Linux kernel update package for x64 machines 升級包安裝之后,,Docker desktop 就能順利啟動了: 練習3:把運行在 Docker 容器內的 Microsoft SQL 服務器部署到 Kyma 中本教程的第六篇文章,,我們已經介紹過如何在 Docker 里運行 Microsoft SQL 服務器: 本練習我們將把這個包含了 Microsoft SQL 服務器的 Docker 容器鏡像,部署到 Kyma 平臺上,。 筆者之前的社區(qū)征文基于 Kyma 的企業(yè)級云原生應用的擴展案例分享 曾經介紹過 Kyma,,一個開源的云原生應用開發(fā)平臺和運行時,底層基于 Kubernetes,,借助一系列包括 Istio, NATS, Serverless 和 Prometheus 在內的其他優(yōu)秀開源項目和組件,,能夠開發(fā),、運行和操作云原生應用程序,,支持對傳統的 On-Premises(本地部署)應用程序和云原生應用基于事件驅動模式的松耦合擴展。 新建一個 secret.yaml 文件,,維護數據庫的用戶名和密碼等 credential 信息,。 定義了一個 PersistentVolume,,用于存儲數據庫的數據。 新建一個 deployment.yaml 文件,,為 MSSQL 數據庫定義一個 deployment 和一個 Service,,用于通信。該文件使用到了前面創(chuàng)建的 pvc.yaml 和 secret.yaml 文件,。 配置好 kubectl 和 SAP Kyma 的連接,。 使用命令行創(chuàng)建名為 dev 的 namespace: kubectl create namespace dev 使用命令行部署 secret.yaml 和 pvc.yaml: kubectl -n dev apply -f ./k8s/pvc.yaml 注意,如果遇到下列錯誤消息: error: you must be logged in to the server ( the server has asked for the client to provide credentials): 解決辦法就是從 Kyma 控制臺重新下載一份 kubeconfig: 成功部署 PersistentVolumeClaim: persistentvolumeclaim/mssql-data created 成功部署 secret: 最后使用如下命令,,將本地 k8s 文件夾里的 yaml 文件代表的 deployment 資源,,部署到 SAP Kyma 上: 部署成功后,使用命令行查看自動生成的 pod 的名稱: 我的 pod 名稱: mssql-74787d5b48-lr877 使用如下命令行拿到該 pod 監(jiān)聽的端口號: kubectl get pod mssql-74787d5b48-lr877 -n dev --template="{{(index (index .spec.containers 0).ports 0).containerPort}}" 得到端口號:1433 使用如下命令為 pod 設置端口轉發(fā),,即 port forward 功能: kubectl port-forward mssql-74787d5b48-lr877 -n dev 1433:1433 看到如下輸出: 接下來,,我們就可以在本地,使用 localhost:1433 訪問運行在 SAP Kyma 里的數據庫了,。 sqlcmd -S localhost:1433 -U SA -P Yukon900 使用如下命令找到 pod 里的 container 名稱:mssql 使用命令 kubectl exec -it mssql-74787d5b48-lr877 -n dev -c mssql -- bash 需要提前設置環(huán)境變量: 最終可以進入 pod,,登錄 SQL 服務器的控制臺,,采用 SELECT * FROM ORDERS 命令行讀取數據庫里的訂單數據: 總結本系列首先介紹了 Windows 操作系統下 Docker 軟件的安裝和使用前提,包括開啟 Hyper V 技術后遇到的一些錯誤消息和解決方案,,最后介紹了如何將 Docker 鏡像部署到基于 Kubernetes 的 Kyma 平臺并運行的詳細步驟,。 本教程的前七篇文章: |
|