转载过程中,图片丢失,代码显示错乱。
为了更好的学习内容,请访问原创版本:
https://www.missshi.cn/api/view/blog/5a63285f0a745f6335000008
Ps:初次访问由于js文件较大,请耐心等候(5s左右)
Docker本身提供了强大的API功能。
我们可以通过访问Docker API来对Docker服务进行管理。
在本章中,我们将会学习如何使用Docker API以及在Python中如何更加高效的使用Docker API。
Docker API
在Docker的生态系统中,存在下列三种API:
- Reistry API:与存储Docker镜像的Registry相关的功能。
- Docker Hub API:与Docker Hub相关的功能
- Docker Remote API:与Docker守护进程相关的功能。
其中,Docker Remote API是使用最为频繁的API类型,后续我们也将针对此类API展开讲解。
启动Remote API
Remote API主要用于远程访问Docker守护进程从而下达指令的。
因此,我们在启动Docker守护进程时,需要添加-H
参数并指定开启的访问端口。
通常,我们可以通过编辑守护进程的配置文件来实现。
不过对于不同操作系统而言,守护进程启动的配置文件也不尽相同:
- Ubuntu系统:
/etc/default/docker
文件 - Centos系统:
/etc/sysconfig/docker
文件
在该配置文件最后,添加内容如下:
OPTIONS='-H=tcp://0.0.0.0:2375 -H unix:///var/run/docker.sock'
修改完成后执行如下命令,重启Docker守护进程:
systemctl stop docker
systemctl start docker
此时,我们可以在其他机器上执行如下命令来测试一下:
docker -H example.com:2375 info
测试Remote API
上面的试验中,我们已经确认了与Docker守护进程之间的连通性。
下面,我们来使用一些Remote API。
curl http://example.com:2375/info
从返回结果看,我们可以得到类似的docker info
时的JSON格式的数据。
通过API管理Docker镜像
调用/images/json
接口可以获取镜像列表:
curl http://example.com:2375/images/json | python -mjson.tool
Ps:通过python -mjson.tool
可以将JSON数据格式化显示。
通过API管理Docker容器
调用/containers/json
接口可以获取正在运行中的容器列表:
curl http://example.com:2375/containers/json | python -mjson.tool
如果想要查询全部的容器(包含不是正在运行的容器)时,可以调用如下接口: