本教程的前七篇文章:
- Docker 实战教程之从入门到提高 (一)
- Docker 实战教程之从入门到提高 (二)
- Docker 实战教程之从入门到提高 (三)
- Docker 实战教程之从入门到提高 (四)
- Docker 实战教程之从入门到提高 (五)
- Docker 实战教程之从入门到提高 (六)
- Docker 实战教程之从入门到提高 (七)
- Docker 实战教程之从入门到提高 (八)
以及通过这篇文章的介绍,我们深入学习了 Docker 技术的三大要点。
从本文开始,我们将分享一些在 Windows 操作系统下的 Docker 实战演练。
本教程之前的文章,介绍的步骤全是在 Ubuntu 操作系统下使用 Docker 的步骤。本练习方便那些使用 Windows 操作系统的学习者,了解如何在 Windows 操作系统下使用 Docker.
这里的 Windows 特指 Windows 10.
Windows 操作系统使用 Docker 的前提是要开启 虚拟技术,在控制面板里把 前面的勾选中,重启即可。
Docker 官网下载 Docker For Windows 的 Community 版本:
下载下来是一个 900 多兆的可执行文件:
安装后,在右下角任务栏里能看到 Docker 的图标:
安装默认会把 Docker 命令行工具 docker.exe 和容器编排工具 docker-compose.exe 安装到 Program Files 的 Docker 文件夹内:
右键可以使用 GUI 的方式来管理:
但我们一般情况下还是更习惯于使用命令行工具 对各种容器镜像进行操作。
笔者已经事先开发好了一个 SAP UI5 应用,将其部署并运行在 Nginx 服务器上,并且把该应用和 Nginx 服务器一起打包在一个容器镜像内,并发布到 Docker Hub 上了,该镜像名称如下:
命令行里直接运行这个镜像即可:
docker run i042416/ui5-nginx:v2.0
从命令打印日志能看出,因为我的本地环境没有这个名为 ,标签为 v2.0的镜像,因此首先会自动从 Docker Hub 将镜像下载到本地。
之后使用 命令就能看到这个成功下载到本地的镜像了,大小约为 109MB:
现在使用如下的命令行启动一个容器:
docker run -d -p 1080:80 --name jerrynginx i042416/ui5-nginx:v2.0
各参数含义如下:
-d: 以后台模式启动容器,返回其 ID.
-p: 将容器内部 Nginx 开放的端口 80 映射到宿主机端口 1080,这样宿主机即 Windows 环境下通过浏览器输入 访问该容器。
–name: 给启动的容器实例取一个名字。
执行完命令行之后,浏览器输入如下 url,即可访问到运行在容器内的 Nginx 之上的 SAP UI5 应用:
docker ps 命令,能看到这个处于运行状态的容器实例:
能查看明细:
在 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(本地部署)应用程序和云原生应用基于事件驱动模式的松耦合扩展。
新建一个 文件,维护数据库的用户名和密码等 credential 信息。
定义了一个 PersistentVolume,用于存储数据库的数据。
新建一个 文件,为 MSSQL 数据库定义一个 deployment 和一个 Service,用于通信。该文件使用到了前面创建的 和 文件。
配置好 和 的连接。
使用命令行创建名为 dev 的 namespace:
kubectl create namespace dev
使用命令行部署 secret.yaml 和 pvc.yaml:
kubectl -n dev apply -f https://blog.csdn.net/i042416/article/details/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 监听的端口号:
kubectl get pod mssql-74787d5b48-lr877 -n dev --template=“{{(index (index .spec.containers 0).ports 0).containerPort}}”
得到端口号:1433
使用如下命令为 pod 设置端口转发,即 port forward 功能:
kubectl port-forward mssql-74787d5b48-lr877 -n dev 1433:1433
看到如下输出:
Forwarding from 127.0.0.1:1433 -> 1433
Forwarding from [::1]:1433 -> 1433
接下来,我们就可以在本地,使用 localhost:1433 访问运行在 SAP Kyma 里的数据库了。
sqlcmd -S localhost:1433 -U SA -P Yukon900
使用如下命令找到 pod 里的 container 名称:mssql
kubectl describe pod mssql-74787d5b48-lr877 -n dev
使用命令
kubectl exec -it mssql-74787d5b48-lr877 -n dev -c mssql – bash
需要提前设置环境变量:
set KUBECONFIG=C:appkubeconfig.yml
最终可以进入 pod,登录 SQL 服务器的控制台,采用 命令行读取数据库里的订单数据:
本系列首先介绍了 Windows 操作系统下 Docker 软件的安装和使用前提,包括开启 Hyper V 技术后遇到的一些错误消息和解决方案,最后介绍了如何将 Docker 镜像部署到基于 Kubernetes 的 Kyma 平台并运行的详细步骤。
本教程的前七篇文章:
- Docker 实战教程之从入门到提高 (一)
- Docker 实战教程之从入门到提高 (二)
- Docker 实战教程之从入门到提高 (三)
- Docker 实战教程之从入门到提高 (四)
- Docker 实战教程之从入门到提高 (五)
- Docker 实战教程之从入门到提高 (六)
- Docker 实战教程之从入门到提高 (七)
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/bian-cheng-ri-ji/73463.html