容器¶
在服务器上运行和管理容器。
上提供的方法 client.containers
:
容器对象¶
- class Container¶
容器对象的本地表示形式。详细配置可通过
attrs
属性。请注意,本地属性是缓存的;用户可以调用reload()
查询Docker守护进程的当前属性,导致attrs
需要重新振作。- attrs¶
- id¶
对象的ID。
- image¶
容器的图像。
- labels¶
作为词典的容器的标签。
- name¶
容器的名称。
- short_id¶
对象的ID,截断为12个字符。
- status¶
容器的状态。例如,
running
,或exited
。服务器中此对象的原始表示形式。
- attach(**kwargs)¶
附在这个容器上。
logs()
是该方法的包装器,如果您希望在不首先检索整个Backlog的情况下获取/流容器输出,则可以使用它。- 参数:
stdout (bool) -- 包括标准输出。
stderr (bool) -- 包括stderr。
stream (bool) -- 以字符串迭代器的形式逐步返回容器输出,而不是单个字符串。
logs (bool) -- 包括容器以前的输出。
- 返回:
默认情况下,容器的输出为单个字符串。如果
stream=True
,输出字符串的迭代器。- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- attach_socket(**kwargs)¶
喜欢
attach()
,但返回HTTP请求的基础类似套接字的对象。- 参数:
params (dict) -- 请求参数词典(例如
stdout
,stderr
,stream
)。ws (bool) -- 使用WebSockets而不是原始的HTTP。
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- commit(repository=None, tag=None, **kwargs)¶
将容器提交到映像。类似于
docker commit
指挥部。- 参数:
repository (str) -- 要将映像推送到的存储库
tag (str) -- 要推送的标签
message (str) -- 提交消息
author (str) -- 作者的姓名
pause (bool) -- 提交前是否暂停容器
changes (str) -- 提交时要应用的Dockerfile说明
conf (dict) -- 容器的配置。请参阅 Engine API documentation 有关详细信息,请参阅。
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- diff()¶
检查容器的文件系统上的更改。
- 返回:
(列表)包含属性的词典列表 Path 和 Kind 。
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- exec_run(cmd, stdout=True, stderr=True, stdin=False, tty=False, privileged=False, user='', detach=False, stream=False, socket=False, environment=None, workdir=None, demux=False)¶
在该容器内运行命令。类似于
docker exec
。- 参数:
cmd (str or list) -- 要执行的命令
stdout (bool) -- 附加到标准输出。默认:
True
stderr (bool) -- 附加到标准错误。默认:
True
stdin (bool) -- 附加到标准输入。默认:
False
tty (bool) -- 分配一个伪TTY。默认:FALSE
privileged (bool) -- 以特权身份运行。
user (str) -- 执行命令的用户身份。默认:根
detach (bool) -- 如果为True,则从EXEC命令断开连接。默认:FALSE
stream (bool) -- 流响应数据。默认:FALSE
socket (bool) -- 返回连接套接字以允许自定义读/写操作。默认:FALSE
environment (dict or list) -- 以下格式的词典或字符串列表
["PASSWORD=xxx"]
或{"PASSWORD": "xxx"}
。workdir (str) -- 此EXEC会话的工作目录的路径
demux (bool) -- 分别返回stdout和stderr
- 返回:
(EXIT_CODE,OUTPUT)EXIT_CODE:(Int)的元组:已执行命令的退出代码或
None
如果有任何一个stream
或socket
是True
。输出:(生成器、字节或元组):ifstream=True
,一个产生响应块的生成器。如果socket=True
,连接的Socket对象。如果demux=True
,两个字节的元组:stdout和stderr。否则包含响应数据的字节字符串。- 返回类型:
(ExecResult)
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- export(chunk_size=2097152)¶
将容器的文件系统的内容导出为TAR归档。
- 参数:
chunk_size (int) -- 生成器的每次迭代返回的字节数。如果
None
,数据将在接收时进行流传输。默认:2 MB- 返回:
文件系统tar归档
- 返回类型:
(str)
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- get_archive(path, chunk_size=2097152, encode_stream=False)¶
以TAR存档的形式从容器中检索文件或文件夹。
- 参数:
path (str) -- 要检索的文件或文件夹的路径
chunk_size (int) -- 生成器的每次迭代返回的字节数。如果
None
,数据将在接收时进行流传输。默认:2 MBencode_stream (bool) -- 确定是否应在传输期间对数据进行编码(GZIP压缩)。默认:FALSE
- 返回:
第一个元素是原始TAR数据流。第二个元素是包含以下内容的词典
stat
有关指定的path
。- 返回类型:
(tuple)
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
示例
>>> f = open('./sh_bin.tar', 'wb') >>> bits, stat = container.get_archive('/bin/sh') >>> print(stat) {'name': 'sh', 'size': 1075464, 'mode': 493, 'mtime': '2018-10-01T15:37:48-07:00', 'linkTarget': ''} >>> for chunk in bits: ... f.write(chunk) >>> f.close()
- kill(signal=None)¶
杀死或向集装箱发送信号。
- 参数:
signal (str or int) -- 要发送的信号。默认为
SIGKILL
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- logs(**kwargs)¶
从此容器中获取日志。类似于
docker logs
指挥部。这个
stream
参数使logs
函数返回一个阻塞生成器,您可以迭代该生成器以在发生时检索日志输出。- 参数:
stdout (bool) -- 到达
STDOUT
。默认True
stderr (bool) -- 到达
STDERR
。默认True
stream (bool) -- 流传输响应。默认
False
timestamps (bool) -- 显示时间戳。默认
False
tail (str or int) -- 在日志末尾输出指定的行数。行数的整数或字符串
all
。默认all
since (datetime, int, or float) -- 显示自给定日期时间、整数纪元(以秒为单位)或浮点数(以纳秒为单位)以来的日志
follow (bool) -- 遵循日志输出。默认
False
until (datetime, int, or float) -- 显示在给定日期时间、整数纪元(秒)或浮点数(纳秒)之前发生的日志
- 返回:
容器中的日志。
- 返回类型:
(generator or str)
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- pause()¶
暂停此容器中的所有进程。
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- put_archive(path, data)¶
使用TAR存档作为源在此容器中插入文件或文件夹。
- 参数:
path (str) -- 将在其中提取文件的容器内的路径。必须存在。
data (bytes or stream) -- 要提取的TAR数据
- 返回:
如果调用成功,则为True。
- 返回类型:
(bool)
- 抛出:
APIError --
- reload()¶
再次从服务器加载此对象并更新
attrs
使用新的数据。
- remove(**kwargs)¶
移走这个容器。类似于
docker rm
指挥部。- 参数:
v (bool) -- 删除与容器关联的卷
link (bool) -- 删除指定的链接,而不是基础容器
force (bool) -- 强制移除运行中的容器(使用
SIGKILL
)
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- rename(name)¶
重命名此容器。类似于
docker rename
指挥部。- 参数:
name (str) -- 容器的新名称
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- resize(height, width)¶
调整tty会话的大小。
- 参数:
height (int) -- TTY会话高度
width (int) -- TTY会话宽度
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- restart(**kwargs)¶
重新启动此容器。类似于
docker restart
指挥部。- 参数:
timeout (int) -- 在终止容器之前尝试停止的秒数。一旦被杀死,它将被重启。默认为10秒。
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- start(**kwargs)¶
启动这个容器。类似于
docker start
命令,但不支持附加选项。- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- stats(**kwargs)¶
此容器的流统计信息。类似于
docker stats
指挥部。- 参数:
decode (bool) -- 如果设置为TRUE,流将被动态解码为DICTS。仅在以下情况下适用
stream
是真的。默认情况下为False。stream (bool) -- 如果设置为FALSE,则只返回当前统计信息,而不返回流。默认情况下为True。
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- stop(**kwargs)¶
停止容器。类似于
docker stop
指挥部。- 参数:
timeout (int) -- 等待容器停止,然后发送
SIGKILL
。默认:10- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- top(**kwargs)¶
显示容器正在运行的进程。
- 参数:
ps_args (str) -- 传递给PS的可选参数(例如
aux
)- 返回:
顶端的输出
- 返回类型:
(str)
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- unpause()¶
取消暂停容器内的所有进程。
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- update(**kwargs)¶
更新容器的资源配置。
- 参数:
blkio_weight (int) -- 数据块IO(相对重量),介于10%和1000之间
cpu_period (int) -- 限制CPU CFS(完全公平调度程序)周期
cpu_quota (int) -- 限制CPU CFS(完全公平调度程序)配额
cpu_shares (int) -- CPU占有率(相对权重)
cpuset_cpus (str) -- 允许执行的CPU
cpuset_mems (str) -- 允许在其中执行的MEMS
mem_limit (int or str) -- 内存限制
mem_reservation (int or str) -- 内存软限制
memswap_limit (int or str) -- 总内存(内存+交换),-1表示禁用交换
kernel_memory (int or str) -- 内核内存限制
restart_policy (dict) -- 重新启动策略字典
- 返回:
包含一个
Warnings
钥匙。- 返回类型:
(dict)
- 抛出:
docker.errors.APIError -- 如果服务器返回错误。
- wait(**kwargs)¶
块,直到容器停止,然后返回其退出代码。类似于
docker wait
指挥部。- 参数:
timeout (int) -- 请求超时
condition (str) -- 等待容器状态达到给定条件,或者
not-running
(默认),next-exit
,或removed
- 返回:
API的响应作为一个Python字典,包括容器在
StatusCode
属性。- 返回类型:
(dict)
- 抛出:
requests.exceptions.ReadTimeout -- 如果超过超时时间。
docker.errors.APIError -- 如果服务器返回错误。