SDK2 - 如何创建一个docker客户端
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了SDK2 - 如何创建一个docker客户端相关的知识,希望对你有一定的参考价值。
1、想和docker守护进程通信,就必须先实例化一个客户端。这里有最简单的方法就是通过名为from_env()的函数。也可以通过通过手动的方式实例化一个DockerClient 类。
2、from_env()
返回一个客户端配置从环境变量中。
这个环境变量和docker命令行是一样的。
DOCKER_HOST
连接Docker host的url
DOCKER_TLS_VERIFY
验证主机的CA证书
DOCKER_CERT_PATH
连接docker主机需要用到的TLS证书路径
参数说明:
version(str) 可以设置API版本,设置自动检测服务器版本,默认1.26
timeout(int) 连接docker主机超时时间以秒为单位。
ssl_version(int) 设置ssl版本信息
assert_hostname(bool) 是否验证服务器的主机名
environment(dict) 设置docker的环境变量,默认值是os.environ
举例:
import docker client=docker.from_env(timeout=10,version=1.28)
3、DockerClient()
我发现上面的from_env()只是对DockerClient()做了一个封装,所以想要更多的个性化配置需要用到我们的DockerClient()类。
DOckerClient: 与docker服务通信的客户端
举例:
import docker client = docker.DockerClient(base_url=‘unix://var/run/docker.sock‘)
参数说明:
base_url(str) - 链接docker服务器的URL,比如:unix://var/run/docker.sock 或者tcp://127.0.0.1:1234
version(str) - API版本,可以设置自动检测服务器的版本。默认1.26.
timeout(int) - 默认超时时间,以秒为单位。
tls(bool or TLSConfig) - 开启TLS。设置为True开启默认配置。设置为TLSConfig对象使用个性化配置。
user_agent(str) - 为服务设置一个自定义的用户代理。
子方法:
configs:
在服务器上管理配置对象。
containers:
在服务器上管理容器对象。
images:
在服务器上管理镜像对象。
networks:
在服务器上管理网络的对象。
node:
在服务器上管理节点的对象。
plugins:
在服务器上管理插件的对象。
secrets:
在服务器上管理安全的对象。
services:
在服务器上管理服务的对象
swarm:
在服务器上管理集群的对象。
volumes:
在服务器上管理数据卷的对象。
df():
获取数据使用信息
返回不同资源类别和资源使用情况。
events()
从服务器获取实时事件。
参数:
since(UTC 时间戳或者整形)
until(UTC 时间戳或者整形)
filters(dict) 过滤时间时间,对象可以是容器或镜像。
返回:可以迭代取出事件。(它是一个生成器)
>>> for event in client.events() ... print event {u‘from‘: u‘image/with:tag‘, u‘id‘: u‘container-id‘, u‘status‘: u‘start‘, u‘time‘: 1423339459} ...
提示:如果没有日志,随便操作下容器就好了,比如启动/停止一个容器就会有事件输出。
info()
查看系统信息,类是命令docker info
login()
登录验证,类是命令docker login
参数:
username(str):用户名
password(str):密码
email(str):注册访问的邮箱
registry(str):注册的url
reauth(bool):是否刷新docker服务器上的现有验证
dockercfg_path(str) :使用自定义的路径配置默认$HOME/.docker/config.json
ping()
验证服务可用性。
返回:BOOL
version()
返回服务器版本信息。
以上是关于SDK2 - 如何创建一个docker客户端的主要内容,如果未能解决你的问题,请参考以下文章
denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock.......(代码片