docker-client-python-远程调用

开发资源管理平台,其中一个功能是创建k8s资源,需要初始化一些信息,如docker的镜像,这就需要远程能够获取docker镜像信息

修改docker启动参数

在docker管理节点(172.28.4.105, 默认端口是2375)上执行:

1
2
3
4
5
6
7
8
# vim /usr/lib/systemd/system/docker.service
在 ExecStart= 部分添加:
-H unix:///var/run/docker.sock -H tcp://172.28.4.105:2375 \
ExecStart=...
...
-H unix:///var/run/docker.sock -H tcp://172.28.4.105:2375 \
...

然后重新加载并重启:

1
2
# systemctl daemon-reload
# systemctl restar docker

python客户端调用

1
2
3
4
5
# pip install docker
# python
>>> client = docker.DockerClient(base_url="tcp://172.28.4.105:2375") # tcp 后面是在docker管理节点启动参数配置的ip和端口
>>> client.images.list()
[<Image: '172.28.7.238:5000/nginx:1.13'>, <Image: 'k8s.gcr.io/kube-scheduler-amd64:v1.10.2'>, ......]