client

用于连接 Podman 服务的客户端。

class PodmanClient(**kwargs)[源代码]

基类:AbstractContextManager

用于连接 Podman 服务的客户端。

示例

with PodmanClient(base_url=”ssh://root@api.example:22/run/podman/podman.sock?secure=True”,

identity=”~alice/.ssh/api_ed25519”)

初始化 PodmanClient。

关键字参数:
  • base_url (str) – Podman 服务的完整 URL。参见示例。

  • version (str) – 要使用的 API 版本。默认值:auto,使用服务器版本

  • timeout (int) – API 调用的超时时间,单位为秒。默认值:socket._GLOBAL_DEFAULT_TIMEOUT。

  • tls – 忽略。SSH 连接配置委托给 SSH 主机配置。

  • user_agent (str) – 服务连接的用户代理。默认值:PodmanPy/<代码版本>

  • credstore_env (Mapping[str, str]) – 包含凭证存储环境的字典

  • use_ssh_client (True) – 对于 SSH Podman 服务连接,始终使用 SSH 客户端。

  • max_pool_size (int) – 连接池中保存的连接数

  • connection (str) – 要从 XDG_CONFIG_HOME/containers/containers.conf 使用的连接标识符

  • identity (str) – 提供 SSH 密钥以验证 SSH 连接。

示例

base_url

  • http+ssh://<用户>@<主机>[:端口]</run/podman/podman.sock>[?secure=True]

  • http+unix://</run/podman/podman.sock>

  • tcp://<localhost>[:<port>]

classmethod from_env(*, version: str = 'auto', timeout: int | None = None, max_pool_size: int | None = None, ssl_version: int | None = None, assert_hostname: bool = False, environment: dict[str, str] | None = None, credstore_env: dict[str, str] | None = None, use_ssh_client: bool = True) PodmanClient[源代码]

使用环境变量和参数返回服务连接。

环境变量

  • DOCKER_HOST, CONTAINER_HOST: Podman 服务的 URL

  • DOCKER_TLS_VERIFY, CONTAINER_TLS_VERIFY: 根据 CA 证书验证主机

  • DOCKER_CERT_PATH, CONTAINER_CERT_PATH: 主机连接 TLS 证书路径

参数:
  • version – 要使用的 API 版本。默认值:auto,使用服务器版本

  • timeout – API 调用的超时时间,单位为秒。

  • max_pool_size – 连接池中保存的连接数。

  • ssl_version – SSH 配置委托给 SSH 客户端配置。忽略。

  • assert_hostname – 忽略。

  • environment – 包含输入环境的字典。默认值:os.environ

  • credstore_env – 包含凭证存储环境的字典

  • use_ssh_client – 使用系统 ssh 客户端而不是 ssh 模块。始终为 True。

返回:

用于与 Podman 服务通信的客户端。

抛出:

当所需环境变量未设置时出现 ValueError

close()[源代码]

释放 PodmanClient 资源。

df() dict[str, Any][源代码]

Podman 资源的磁盘使用情况。

返回:

按资源类别及其数据使用情况进行键控。

返回类型:

dict

events(*args, **kwargs)[源代码]

报告网络。

参数:
  • decode – 当为 True 时,将流解码为字典。默认值:False

  • filters – 包含事件的条件。

  • since – 获取晚于此时间的事件。

  • until – 获取早于此时间的事件。

生成:

当 decode 为 True 时,Iterator[dict[str, Any]]

当 decode 为 False 时,Iterator[str]

info(*args, **kwargs)[源代码]

返回 Podman 服务信息。

login(*args, **kwargs)[源代码]

登录 Podman 服务。

参数:
  • username – 注册表用户名

  • password – 注册表纯文本密码

  • email – 注册表账户电子邮件地址

  • registry – 注册表访问 URL。例如,https://quay.io/v2

  • reauth – 忽略:如果为 True,刷新现有身份验证。默认值:False

  • dockercfg_path – 忽略:自定义配置文件路径。

  • auth – TODO:根据 Podman 源代码添加描述。

  • identitytoken – IdentityToken 用于验证用户并获取注册表的访问令牌。

  • registrytoken – RegistryToken 是发送到注册表的持有者令牌

  • tls_verify – 是否验证 TLS 证书。

ping() bool[源代码]

如果服务响应 OK,则返回 True。

version(*args, **kwargs)[源代码]

从服务获取版本信息。

关键字参数:

api_version (bool) – 当为 True 时包含 API 版本

property configs

不支持 Swarm。

抛出:

NotImplemented – Podman 服务不支持 Swarm

property containers: ContainersManager

返回用于对 Podman 服务存储的容器进行操作的管理器。

property images: ImagesManager

返回用于对 Podman 服务存储的镜像进行操作的管理器。

property manifests: ManifestsManager

返回用于对 Podman 服务维护的清单进行操作的管理器。

property networks: NetworksManager

返回用于对 Podman 服务维护的网络进行操作的管理器。

property nodes

不支持 Swarm。

抛出:

NotImplemented – Podman 服务不支持 Swarm

property pods: PodsManager

返回用于对 Podman 服务维护的 pod 进行操作的管理器。

property secrets

返回用于对 Podman 服务维护的 secret 进行操作的管理器。

property services

不支持 Swarm。

抛出:

NotImplemented – Podman 服务不支持 Swarm

property swarm

不支持 Swarm。

抛出:

NotImplemented – Podman 服务不支持 Swarm

property system
property volumes: VolumesManager

返回用于对 Podman 服务维护的卷进行操作的管理器。

from_env(*, version: str = 'auto', timeout: int | None = None, max_pool_size: int | None = None, ssl_version: int | None = None, assert_hostname: bool = False, environment: dict[str, str] | None = None, credstore_env: dict[str, str] | None = None, use_ssh_client: bool = True) PodmanClient

使用环境变量和参数返回服务连接。

环境变量

  • DOCKER_HOST, CONTAINER_HOST: Podman 服务的 URL

  • DOCKER_TLS_VERIFY, CONTAINER_TLS_VERIFY: 根据 CA 证书验证主机

  • DOCKER_CERT_PATH, CONTAINER_CERT_PATH: 主机连接 TLS 证书路径

参数:
  • version – 要使用的 API 版本。默认值:auto,使用服务器版本

  • timeout – API 调用的超时时间,单位为秒。

  • max_pool_size – 连接池中保存的连接数。

  • ssl_version – SSH 配置委托给 SSH 客户端配置。忽略。

  • assert_hostname – 忽略。

  • environment – 包含输入环境的字典。默认值:os.environ

  • credstore_env – 包含凭证存储环境的字典

  • use_ssh_client – 使用系统 ssh 客户端而不是 ssh 模块。始终为 True。

返回:

用于与 Podman 服务通信的客户端。

抛出:

当所需环境变量未设置时出现 ValueError