一、想和docker守護進程通訊,就必須先實例化一個客戶端。這裏有最簡單的方法就是經過名爲from_env()的函數。也能夠經過經過手動的方式實例化一個DockerClient 類。node
二、from_env()docker
返回一個客戶端配置從環境變量中。json
這個環境變量和docker命令行是同樣的。安全
DOCKER_HOST服務器
鏈接Docker host的url網絡
DOCKER_TLS_VERIFYtcp
驗證主機的CA證書函數
DOCKER_CERT_PATHurl
鏈接docker主機須要用到的TLS證書路徑 spa
參數說明:
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)
三、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()
返回服務器版本信息。