containers

容器资源的模型和管理器。

class Container(attrs: Mapping[str, Any] | None = None, client: APIClient | None = None, collection: Manager | None = None)[source]

基类: PodmanResource

由 Podman 服务管理的容器的详细信息和配置。

初始化 PodmanResource 的基类。

参数:
  • attrs – 来自 Podman 服务的资源属性映射。

  • client – 配置连接到 Podman 服务。

  • collection – 此类资源的管理器,命名为 collection 以保持兼容性

attach(**kwargs) str | Iterator[str][source]

连接到容器的 tty。

关键字参数:
  • stdout (bool) – 包含标准输出。默认值:True

  • stderr (bool) – 包含标准错误。默认值:True

  • stream (bool) – 返回字符串迭代器而不是单个字符串。默认值:False

  • logs (bool) – 包含以前的容器输出。默认值:False

引发:

NotImplementedError – 方法未实现。

attach_socket(**kwargs)[source]

未实现。

引发:

NotImplementedError – 方法未实现。

commit(repository: str = None, tag: str = None, **kwargs) Image[source]

将容器保存到给定的仓库。

参数:
  • repository – 保存镜像的位置

  • tag – 与镜像一起推送的标签

关键字参数:
  • author (str) – 提交作者的姓名

  • changes (List[str]) – 提交过程中要应用的指令

  • comment (str) – 要包含在镜像中的提交消息,覆盖关键字消息

  • conf (dict[str, Any]) – 被忽略。

  • format (str) – 镜像清单和元数据的格式

  • message (str) – 要包含在镜像中的提交消息

  • pause (bool) – 提交前暂停容器

diff() List[Dict[str, int]][source]

报告容器文件系统的更改。

引发:

APIError – 当服务报告错误时

exec_run(cmd: str | List[str], stdout: bool = True, stderr: bool = True, stdin: bool = False, tty: bool = False, privileged: bool = False, user=None, detach: bool = False, stream: bool = False, socket: bool = False, environment: Mapping[str, str] | List[str] = None, workdir: str = None, demux: bool = False) Tuple[int | None, Iterator[bytes] | Any | Tuple[bytes, bytes]][source]

在容器内运行给定的命令并返回结果。

参数:
  • cmd – 要执行的命令

  • stdout – 连接到标准输出。默认值:True

  • stderr – 连接到标准错误。默认值:True

  • stdin – 连接到标准输入。默认值:False

  • tty – 分配伪终端。默认值:False

  • privileged – 以特权方式运行。

  • user – 以其执行命令的用户。默认值:root

  • detach – 如果为真,则从 exec 命令分离。默认值:False

  • stream – 流式传输响应数据。默认值:False

  • socket – 返回连接套接字以允许自定义读/写操作。默认值:False

  • environment – 字典或 List[str],格式如下: [“PASSWORD=xxx”] 或 {“PASSWORD”: “xxx”}。

  • workdir – 此 exec 会话的工作目录路径

  • demux – 分别返回标准输出和标准错误

返回值:

第一个项目是命令响应代码,第二个项目是请求响应内容

引发:
  • NotImplementedError – 方法未实现。

  • APIError – 当服务报告错误时

export(chunk_size: int = 2097152) Iterator[bytes][source]

下载容器的文件系统内容为 tar 归档文件。

参数:

chunk_size – <= 每次生成器迭代返回的字节数。

产量:

大小/chunk_size 块的 tar 包

引发:
  • NotFound – 当容器已从服务中删除时

  • APIError – 当服务报告错误时

get_archive(path: str, chunk_size: int = 2097152) Tuple[Iterable, Dict[str, Any]][source]

从容器的文件系统下载文件或文件夹。

参数:
  • path – 文件或文件夹的路径。

  • chunk_size – <= 每次生成器迭代返回的字节数。

返回值:

第一项是原始 tar 数据流。第二项是包含指定路径上 os.stat() 信息的字典。

inspect() Dict[source]

检查容器。

引发:

APIError – 当服务报告错误时

kill(signal: str | int | None = None) None[source]

向容器发送信号。

引发:

APIError – 当服务报告错误时

logs(**kwargs) bytes | Iterator[bytes][source]

获取容器的日志。

关键字参数:
  • stdout (bool) – 包含标准输出。默认值:True

  • stderr (bool) – 包含标准错误。默认值:True

  • stream (bool) – 将字符串生成器作为响应返回。默认值:False

  • timestamps (bool) – 在输出中显示时间戳。默认值:False

  • tail (Union[str, int]) – 输出日志末尾指定的行数。表示要显示的行数的整数,或字符串 all。默认值:all

  • since (Union[datetime, int]) – 显示自给定日期时间或整数纪元(以秒为单位)以来的日志

  • follow (bool) – 跟踪日志输出。默认值:False

  • until (Union[datetime, int]) – 显示在给定日期时间或整数纪元(以秒为单位)之前发生的日志

pause() None[source]

暂停容器内的进程。

put_archive(path: str, data: bytes = None) bool[source]

上传包含要写入容器的文件或文件夹的 tar 归档文件。

参数:
  • path – 要将数据写入的文件

  • data – 要写入文件的内容,当为 None 时,将在客户端读取路径以构建 tarfile。

返回值:

成功时为 True

引发:

APIError – 当服务器报告错误时

reload() None

从服务刷新此对象的数据。

remove(**kwargs) None[source]

删除容器。

关键字参数:
  • v (bool) – 也删除关联的卷。

  • link (bool) – 已忽略。

  • force (bool) – 在删除之前杀死正在运行的容器。

rename(name: str) None[source]

重命名容器。

就地更新容器以避免 reload()。

参数:

name – 容器的新名称。

resize(height: int = None, width: int = None) None[source]

调整 tty 会话的大小。

参数:
  • height – tty 会话的新高度。

  • width – tty 会话的新宽度。

restart(**kwargs) None[source]

重启容器中的进程。

关键字参数:

timeout (int) – 在杀死容器之前等待容器停止的秒数。

start(**kwargs) None[source]

启动容器中的进程。

关键字参数:

detach_keys – 覆盖分离容器的键序列(仅限 Podman)

stats(**kwargs) bytes | Dict[str, Any] | Iterator[bytes] | Iterator[Dict[str, Any]][source]

返回容器的统计信息。

关键字参数:
  • decode (bool) – 如果为 True 且 stream 为 True,则流将解码为字典。默认值:False。

  • stream (bool) – 流式传输统计信息,直到取消。默认值:True。

引发:

APIError – 当服务报告错误时

stop(**kwargs) None[source]

停止容器。

关键字参数:
  • all (bool) – 当为 True 时,停止所有容器。默认值:False(仅限 Podman)

  • 忽略 (bool) – 当为 True 时,如果容器已停止则忽略错误 (仅限 Podman)

  • 超时 (int) – 在杀死容器之前等待容器停止的秒数。

top(**kwargs) Iterator[Dict[str, Any]] | Dict[str, Any][source]

报告容器中正在运行的进程。

关键字参数:
  • ps_args (str) – 当给出时,参数将传递给 ps

  • stream (bool) – 当为 True 时,重复返回结果。默认值:False

引发:
  • NotFound – 当容器不再存在时

  • APIError – 当服务报告错误时

unpause() None[source]

取消暂停容器中的进程。

update(**kwargs)[source]

更新容器的资源配置。

引发:

NotImplementedError – Podman 服务不支持此操作。

wait(**kwargs) int[source]

阻止直到容器进入给定状态。

关键字参数:
  • condition (Union[str, List[str]]) – 要释放的容器状态。可以是以下一个或多个:“configured”,“created”,“running”,“stopped”,“paused”,“exited”,“removing”,“stopping”。

  • interval (int) – 在轮询完成之前等待的时间间隔。

返回值:

“Error”键具有一个字典值,其键为“Message”。

引发:
  • NotFound – 当容器未找到时

  • ReadTimeoutError – 当超时超过时

  • APIError – 当服务返回错误时

property id

返回对象的标识符。

类型:

str

property image

返回用于创建容器的 Image 对象。

类型:

podman.domain.images.Image

property labels

返回与容器关联的标签。

类型:

dict[str, str]

property name

返回容器的名称。

类型:

str

property ports

返回容器公开的端口。

类型:

dict[str, int]

property short_id

返回截断的标识符。'sha256' 在包含在 id 中时保留。

不会尝试确保返回值对所有资源在语义上都有意义。

类型:

str

property status

返回容器的状态。

类型:

Literal[“running”, “stopped”, “exited”, “unknown”]