镜像

管理服务器上的镜像。

上提供的方法 client.images

class ImageCollection
build(**kwargs)

建立一个形象,并将其归还。类似于 docker build 指挥部。要么 pathfileobj 必须设置。

如果您已经有了Docker构建上下文的tar文件(包括Dockerfile),请将一个类似文件的可读对象传递给 fileobj 而且还通过了 custom_context=True 。如果流也被压缩,则设置 encoding 设置为正确的值(例如 gzip )。

如果要获取生成的原始输出,请使用 build() 方法。

参数:
  • path (str) -- 包含Dockerfile的目录的路径

  • fileobj -- 要用作Dockerfile的文件对象。(或类似文件的对象)

  • tag (str) -- 要添加到最终图像的标记

  • quiet (bool) -- 是否返回状态

  • nocache (bool) -- 设置为时不使用缓存 True

  • rm (bool) -- 移除中间容器。这个 docker build 命令现在默认为 --rm=true ,但我们保留了旧的默认设置 False 保持向后兼容性

  • timeout (int) -- HTTP超时

  • custom_context (bool) -- 可选,如果使用 fileobj

  • encoding (str) -- 流的编码。设为 gzip 用于压缩

  • pull (bool) -- 下载DockerFiles中的From映像的所有更新

  • forcerm (bool) -- 始终删除中间容器,即使在构建不成功之后也是如此

  • dockerfile (str) -- 生成上下文中指向Dockerfile的路径

  • buildargs (dict) -- 构建参数词典

  • container_limits (dict) -- 应用于生成过程创建的每个容器的限制字典。有效密钥:-Memory(Int):设置构建内存交换的内存限制(Int):总内存(Memory+SWAP),-1表示禁用交换-cpushares(Int):CPU份额(相对权重)-cpusetcpus(Str):允许执行的CPU,例如, "0-3""0,1"

  • shmsize (int) -- 大小 /dev/shm 以字节为单位。大小必须大于0。如果省略,则系统使用64MB

  • labels (dict) -- 要在图像上设置的标签词典

  • cache_from (list) -- 用于构建缓存分辨率的图像列表

  • target (str) -- 要在多阶段Dockerfile中生成的生成阶段的名称

  • network_mode (str) -- 构建过程中运行命令的联网模式

  • squash (bool) -- 将生成的图像层挤压到单个层中。

  • extra_hosts (dict) -- 要作为主机名到IP地址的映射添加到构建容器中的/etc/hosts的额外主机。

  • platform (str) -- 格式中的平台 os[/arch[/variant]]

  • isolation (str) -- 构建过程中使用的隔离技术。默认: None

  • use_config_proxy (bool) -- 如果 True ,并且如果Docker客户端配置文件 (~/.docker/config.json 默认情况下)包含代理配置,则将在要构建的容器中设置相应的环境变量。

返回:

第一项是 Image 用于生成的图像的。第二项是将构建日志作为JSON解码对象的生成器。

返回类型:

(tuple)

抛出:
  • docker.errors.BuildError -- 如果在生成过程中出现错误。

  • docker.errors.APIError -- 如果服务器返回任何其他错误。

  • TypeError -- 如果两者都不是 path 也不是 fileobj 是指定的。

get(name)

获取图像。

参数:

name (str) -- 图像的名称。

返回:

这个形象。

返回类型:

(Image )

抛出:
  • docker.errors.ImageNotFound -- 如果图像不存在。

  • docker.errors.APIError -- 如果服务器返回错误。

get_registry_data(name, auth_config=None)

获取图像的注册表数据。

参数:
  • name (str) -- 图像的名称。

  • auth_config (dict) -- 覆盖在此请求的配置中找到的凭据。 auth_config 应包含 usernamepassword 钥匙是有效的。

返回:

数据对象。

返回类型:

(RegistryData )

抛出:

docker.errors.APIError -- 如果服务器返回错误。

list(**kwargs)

列出服务器上的图像。

参数:
  • name (str) -- 仅显示属于存储库的图像 name

  • all (bool) -- 显示中间图像层。默认情况下,这些内容会被过滤掉。

  • filters (dict) -- 要在图像列表上处理的滤镜。可用过滤器:- dangling (布尔)- label (字符串|列表):格式 "key""key=value" 或者一份这样的清单。

返回:

这些图像。

返回类型:

(列表 Image )

抛出:

docker.errors.APIError -- 如果服务器返回错误。

load(data)

加载以前使用以下命令保存的图像 save() (或 docker save )。类似于 docker load

参数:

data (binary) -- 要加载的图像数据。

返回:

这些图像。

返回类型:

(列表 Image )

抛出:

docker.errors.APIError -- 如果服务器返回错误。

prune(filters=None)

删除未使用的图像

参数:

filters (dict) -- 要在清理列表上处理的筛选器。可用滤镜:-Dangling(Bool):设置为True(或1)时,仅修剪未使用和未标记的图像。

返回:

包含已删除图像ID列表和回收的磁盘空间量(以字节为单位)的DICT。

返回类型:

(dict)

抛出:

docker.errors.APIError -- 如果服务器返回错误。

pull(repository, tag=None, all_tags=False, **kwargs)

拉出给定名称的图像并将其返回。类似于 docker pull 指挥部。如果 tagNone 或为空,则设置为 latest 。如果 all_tags 已设置,则 tag 参数被忽略,并且将拉取所有图像标签。

如果您想要获得原始的拉动输出,请使用 pull() 方法。

参数:
  • repository (str) -- 要拉取的存储库

  • tag (str) -- 要拉出的标签

  • auth_config (dict) -- 覆盖在此请求的配置中找到的凭据。 auth_config 应包含 usernamepassword 钥匙是有效的。

  • platform (str) -- 格式中的平台 os[/arch[/variant]]

  • all_tags (bool) -- 拉取所有图片标签

返回:

已被拉出的图像。如果 all_tags 为True,则该方法将返回 Image 属于此存储库的对象。

返回类型:

(Image 或列表)

抛出:

docker.errors.APIError -- 如果服务器返回错误。

示例

>>> # Pull the image tagged `latest` in the busybox repo
>>> image = client.images.pull('busybox')
>>> # Pull all tags in the busybox repo
>>> images = client.images.pull('busybox', all_tags=True)
push(repository, tag=None, **kwargs)

将映像或存储库推送到注册表。类似于 docker push 指挥部。

参数:
  • repository (str) -- 要推送到的存储库

  • tag (str) -- 要推送的可选标签

  • stream (bool) -- 将输出作为分块生成器进行流式处理

  • auth_config (dict) -- 覆盖在此请求的配置中找到的凭据。 auth_config 应包含 usernamepassword 钥匙是有效的。

  • decode (bool) -- 将来自服务器的JSON数据解码为DICT。仅适用于 stream=True

返回:

服务器的输出。

返回类型:

(generator or str)

抛出:

docker.errors.APIError -- 如果服务器返回错误。

示例

>>> resp = client.api.push(
...     'yourname/app',
...     stream=True,
...     decode=True,
... )
... for line in resp:
...   print(line)
{'status': 'Pushing repository yourname/app (1 tags)'}
{'status': 'Pushing','progressDetail': {}, 'id': '511136ea3c5a'}
{'status': 'Image already pushed, skipping', 'progressDetail':{},
 'id': '511136ea3c5a'}
...
remove(*args, **kwargs)

删除图像。类似于 docker rmi 指挥部。

参数:
  • image (str) -- 要删除的图像

  • force (bool) -- 强制删除图像

  • noprune (bool) -- 不删除未标记的父项

search(*args, **kwargs)

在Docker Hub上搜索图像。类似于 docker search 指挥部。

参数:
  • term (str) -- 要搜索的术语。

  • limit (int) -- 要返回的最大结果数。

返回:

搜索的响应。

返回类型:

(list of dicts)

抛出:

docker.errors.APIError -- 如果服务器返回错误。

镜像对象

class Image

服务器上的映像。

attrs

服务器中此对象的原始表示形式。

id

对象的ID。

labels

作为词典的图像的标签。

short_id

截断为12个字符的图像的ID,加上 sha256: 前缀。

tags

图像的标签。

history()

显示图像的历史记录。

返回:

图像的历史。

返回类型:

(list)

抛出:

docker.errors.APIError -- 如果服务器返回错误。

reload()

再次从服务器加载此对象并更新 attrs 使用新的数据。

save(chunk_size=2097152, named=False)

拍一张照片的油画。类似于 docker save 指挥部。

参数:
  • chunk_size (int) -- 生成器将在每次迭代中返回多达该数量的数据,但可能会返回更少的数据。如果 None ,数据将在接收时进行流传输。默认:2 MB

  • named (str or bool) -- 如果 False (默认),tarball将不会保留此图像的存储库和标签信息。如果设置为 True 中的第一个标记 tags 列表将用于标识图像。或者,可以使用 tags List可用作将该特定标记用作保存的标识符的参数。

返回:

原始档案数据流。

返回类型:

(generator)

抛出:

docker.errors.APIError -- 如果服务器返回错误。

示例

>>> image = cli.images.get("busybox:latest")
>>> f = open('/tmp/busybox-latest.tar', 'wb')
>>> for chunk in image.save():
>>>   f.write(chunk)
>>> f.close()
tag(repository, tag=None, **kwargs)

将此图像标记到存储库中。类似于 docker tag 指挥部。

参数:
  • repository (str) -- 要为标记设置的存储库

  • tag (str) -- 标记名

  • force (bool) -- 力

抛出:

docker.errors.APIError -- 如果服务器返回错误。

返回:

True 如果成功

返回类型:

(bool)

RegistryData对象

class RegistryData

存储在注册表中的图像元数据,包括可用平台。

attrs

服务器中此对象的原始表示形式。

id

对象的ID。

short_id

截断为12个字符的图像的ID,加上 sha256: 前缀。

has_platform(platform)

检查给定的平台标识符是否可用于此摘要。

参数:

platform (str or dict) -- 一个字符串,使用 os[/arch[/variant]] 格式或平台词典。

返回:

True 如果该平台被识别为可用, False 否则的话。

返回类型:

(bool)

抛出:

docker.errors.InvalidArgument -- 如果平台参数不是有效的描述符。

pull(platform=None)

调出图像摘要。

参数:
  • platform (str) -- 要为其拉取图像的平台。

  • Default -- None

返回:

对拉出的图像的引用。

返回类型:

(Image )

reload()

再次从服务器加载此对象并更新 attrs 使用新的数据。