本教程的实战前七篇文章: 以及通过这篇文章的介绍,我们深入学习了 Docker 技术的教程三大要点。 从本文开始,入门我们将分享一些在 Windows 操作系统下的到提 Docker 实战演练。 本教程之前的实战文章,介绍的教程步骤全是在 Ubuntu 操作系统下使用 Docker 的步骤。本练习方便那些使用 Windows 操作系统的入门学习者,了解如何在 Windows 操作系统下使用 Docker. 这里的到提 Windows 特指 Windows 10. Docker 官网下载 Docker For Windows 的入门 Community 版本: 下载下来是一个 900 多兆的可执行文件: 安装后,在右下角任务栏里能看到 Docker 的到提图标: 安装默认会把 Docker 命令行工具 docker.exe 和容器编排工具 docker-compose.exe 安装到 Program Files 的 Docker 文件夹内: 右键可以使用 GUI 的方式来管理: 但我们一般情况下还是更习惯于使用命令行工具 docker.exe 对各种容器镜像进行操作。 笔者已经事先开发好了一个 SAP UI5 应用,实战将其部署并运行在 Nginx 服务器上,云服务器提供商教程并且把该应用和 Nginx 服务器一起打包在一个容器镜像内,入门并发布到 Docker Hub 上了,该镜像名称如下: 命令行里直接运行这个镜像即可: docker run i042416/ui5-nginx:v2.0 从命令打印日志能看出,因为我的本地环境没有这个名为 i042416/ui5-nginx,标签为 v2.0的镜像,因此首先会自动从 Docker Hub 将镜像下载到本地。 现在使用如下的命令行启动一个容器: docker run -d -p 1080:80 —name jerrynginx i042416/ui5-nginx:v2.0 各参数含义如下: -d: 以后台模式启动容器,返回其 ID. —name: 给启动的容器实例取一个名字。 docker ps 命令,能看到这个处于运行状态的容器实例: docker inspect jerrynginx 能查看明细: 在 Windows Docker Desktop 的 Dashboard 菜单里能观察到这个名为 jerrynginx,处于后台运行状态下的容器实例: 该 Dashboard 提供了针对运行时容器实例的一些基础操作,比如查看日志: 以及登入容器实例内部,以交互式方式执行命令行等功能。这些功能均对应有 Docker 命令行工具的实现,可以根据喜好来选择使用。源码下载 我的 Windows10 操作系统,安装完 Docker Desktop,启动后出现下面的提示窗口: WSL 2 installation is incomplete 把这个 WSL2 Linux kernel update package for x64 machines 升级包安装之后,Docker desktop 就能顺利启动了: 本教程的第六篇文章,我们已经介绍过如何在 Docker 里运行 Microsoft SQL 服务器: Docker 实战教程之从入门到提高 (六) 本练习我们将把这个包含了 Microsoft SQL 服务器的 Docker 容器镜像,部署到 Kyma 平台上。 笔者之前的社区征文基于 Kyma 的企业级云原生应用的扩展案例分享 曾经介绍过 Kyma,一个开源的云原生应用开发平台和运行时,底层基于 Kubernetes,借助一系列包括 Istio, NATS, Serverless 和 Prometheus 在内的其他优秀开源项目和组件,能够开发、运行和操作云原生应用程序,支持对传统的 On-Premises(本地部署)应用程序和云原生应用基于事件驱动模式的松耦合扩展。 新建一个 secret.yaml 文件,维护数据库的用户名和密码等 credential 信息。 定义了一个 PersistentVolume,用于存储数据库的数据。 新建一个 deployment.yaml 文件,高防服务器为 MSSQL 数据库定义一个 deployment 和一个 Service,用于通信。该文件使用到了前面创建的 pvc.yaml 和 secret.yaml 文件。 配置好 kubectl 和 SAP Kyma 的连接。 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 的名称: mssql-74787d5b48-lr877 使用如下命令行拿到该 pod 监听的端口号: kubectl get pod mssql-74787d5b48-lr877 -n dev —template=”{ { (index (index .spec.containers 0).ports 0).containerPort}}” 得到端口号:1433 kubectl port-forward mssql-74787d5b48-lr877 -n dev 1433:1433 Forwarding from 127.0.0.1:1433 -> 1433 接下来,我们就可以在本地,使用 localhost:1433 访问运行在 SAP Kyma 里的数据库了。 sqlcmd -S localhost:1433 -U SA -P Yukon900 kubectl describe pod mssql-74787d5b48-lr877 -n dev 使用命令 kubectl exec -it mssql-74787d5b48-lr877 -n dev -c mssql — bash set KUBECONFIG=C:\app\kubeconfig.yml 最终可以进入 pod,登录 SQL 服务器的控制台,采用 SELECT * FROM ORDERS 命令行读取数据库里的订单数据: 本系列首先介绍了 Windows 操作系统下 Docker 软件的安装和使用前提,包括开启 Hyper V 技术后遇到的一些错误消息和解决方案,最后介绍了如何将 Docker 镜像部署到基于 Kubernetes 的 Kyma 平台并运行的详细步骤。 本教程的前七篇文章:练习1:如何在 Windows 操作系统下使用 Docker 运行一个 Web 应用
练习2:Windows 10 启动 Docker Desktop 时出现 WSL 2 installation is incomplete 的错误消息
练习3:把运行在 Docker 容器内的 Microsoft SQL 服务器部署到 Kyma 中
总结