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
{ufrom: uimage/with:tag,
 uid: ucontainer-id,
 ustatus: ustart,
 utime: 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.......(代码片

azure sdk2.5 云服务部署不创建 wad-control-container blob

怎么把docker里面已经创建的容器删除

用java给html文件添加必要的控制html代码片

52 java编程思想——创建窗口和程序片 程序片限制

57 java编程思想——创建窗口和程序片 可视编程和Beans