共计 3454 个字符,预计需要花费 9 分钟才能阅读完成。
本教程的前七篇文章:
- Docker 实战教程之从入门到进步 (一)
- Docker 实战教程之从入门到进步 (二)
- Docker 实战教程之从入门到进步 (三)
- Docker 实战教程之从入门到进步 (四)
- Docker 实战教程之从入门到进步 (五)
- Docker 实战教程之从入门到进步 (六)
- Docker 实战教程之从入门到进步 (七)
以及通过这篇文章的介绍,咱们深刻学习了 Docker 技术的三大要点。
从本文开始,咱们将分享一些在 Windows 操作系统下的 Docker 实战演练。
练习 1:如何在 Windows 操作系统下应用 Docker 运行一个 Web 利用
本教程之前的文章,介绍的步骤全是在 Ubuntu 操作系统下应用 Docker 的步骤。本练习不便那些应用 Windows 操作系统的学习者,理解如何在 Windows 操作系统下应用 Docker.
这里的 Windows 特指 Windows 10.
Windows 操作系统应用 Docker 的前提是要开启 Hyper V
虚构技术,在控制面板里把 Hyper-V
后面的勾选中,重启即可。
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 images
命令就能看到这个胜利下载到本地的镜像了,大小约为 109MB:
当初应用如下的命令行启动一个容器:
docker run -d -p 1080:80 –name jerrynginx i042416/ui5-nginx:v2.0
各参数含意如下:
-d: 当前台模式启动容器,返回其 ID.
-p: 将容器外部 Nginx 凋谢的端口 80 映射到宿主机端口 1080,这样宿主机即 Windows 环境下通过浏览器输出 localhost:1080
拜访该容器。
–name: 给启动的容器实例取一个名字。
执行完命令行之后,浏览器输出如下 url,即可拜访到运行在容器内的 Nginx 之上的 SAP UI5 利用:
docker ps 命令,能看到这个处于运行状态的容器实例:
docker inspect jerrynginx
能查看明细:
在 Windows Docker Desktop 的 Dashboard 菜单里能察看到这个名为 jerrynginx,处于后盾运行状态下的容器实例:
该 Dashboard 提供了针对运行时容器实例的一些根底操作,比方查看日志:
以及登入容器实例外部,以交互式形式执行命令行等性能。这些性能均对应有 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 服务器:
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
的连贯。
应用命令行创立名为 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 监听的端口号:
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 名称:mssqlkubectl 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 平台并运行的具体步骤。
本教程的前七篇文章:
- Docker 实战教程之从入门到进步 (一)
- Docker 实战教程之从入门到进步 (二)
- Docker 实战教程之从入门到进步 (三)
- Docker 实战教程之从入门到进步 (四)
- Docker 实战教程之从入门到进步 (五)
- Docker 实战教程之从入门到进步 (六)
- Docker 实战教程之从入门到进步 (七)