前言:
由于最近打算学习python自动化这块,然后莫名其妙的转到了开发这块,说实话,开发是我一直以来都挺想涉足的领域,所以我目前从事的是运维,但是感觉开发比较有意思,由于是自学python开发,所以会遇到一些很基础很基础的问题,也许对于大部分开发的人来说都不是问题,就好像问我运维的Linux怎么切换目录一样,但是对我来说却是全新的知识,所以我要以我能理解的方式去记录与分享,希望能帮助那些跟我一样的人!
一、Docker简介
在写下面的内容之前,先简单说一下Docker的架构,Docker与我们常见的MySQL一样,都是cs架构,也就是客户端(Client),服务端(Server)的简称,所以Docker除了在本地使用,也可以通过(客户端)的方式进行操作,同时也支持API的方式进行操作,为Docker管理提供了更多的选择
二、API
在了解这个API之前,可以先去查一下什么是API?
下面附上官方的API文档说明
2.1、举个例子
了解这个例子之前,建议先去看这篇文章:如何开启Docker远程访问
比如我需要查询关键字为“centos”的镜像结果,我的Docker服务器的IP地址是:10.1.1.17,开放的端口是:2375
下面附上三种查询方法:
本地方式
docker search centos
客户端方式
docker -H 10.1.1.17:2375 search centos
API方式
http://10.1.1.17:2375/images/search?term=centos
直接通过HTTP访问的话数据会排版很乱,所以如果需要直观一点的话就需要json格式化输出
直接访问
json格式化
2.2、语法解析
2.2.1、官方API说明
示例:Docker镜像查询
在官方的解析中,search的使用方法是在端口后面加上下面这个路径
/images/search
然后可选参数如下:
- term :关键词传入
- limit :需要显示的数量,只能传入整数
- filters :过滤器,Docker镜像有星级评价,这个是通过星级评价条件进行筛选的一个参数,也只能传入整数**
但是官方没有告诉你应该怎么使用这些参数,所以这也是我写这篇文章的意义所在!
2.2.2、如何以最简单的方式理解API调用语法
API调用其实可以参考百度搜索,例如:
从上面的结果中,可以看到下面这种变量
wd=csdn&oq=csbd
然后查询其他关键字看一下变化
可以发现,这个wd就是传入的关键字,而oq则是搜索结果的什么鬼,这都不重要,重要的是从这里我们可以知道Docker官方提供的所谓的参数使用其实就是加“=”号,然后在“=”的右边加上具体值(变量值),最后就可以得出想要的结果,而在不同的参数直接使用了,而下面这个符号则是“与”的意思
&
也就是多个条件做组合,例如数量,格式等都可以一起配合使用,那么到这里就很简单了,通过这个语法然后参考官方说明文档就可以很轻易的掌握基础的API知识了
2.3、实战
2.3.1、场景1:查询关键字“centos”的镜像
语法如下:
/images/search?term=centos
执行结果如下(已json格式化):
2.3.2、查询关键字为“mariadb”的镜像,并且只需要两个结果
语法如下:
/images/search?term=centos&limit=2
执行结果如下: