服务

管理群集上的服务。有关服务的详细信息,请参阅 see the Engine documentation

在使用这些方法之前,您首先需要 join or initialize a swarm

上提供的方法 client.services

class ServiceCollection
create(image, command=None, **kwargs)

创建服务。类似于 docker service create 指挥部。

参数:
  • image (str) -- 要用于容器的图像名称。

  • command (list of str or str) -- 命令以运行。

  • args (list of str) -- 命令的参数。

  • constraints (list of str) -- Placement 约束条件。

  • preferences (list of tuple) -- Placement 偏好。

  • maxreplicas (int) -- Placement 最大复制副本或(Int),表示每个节点的最大复制副本数。

  • platforms (list of tuple) -- 平台约束列表,表示为 (arch, os) 元组。

  • container_labels (dict) -- 要应用于容器的标签。

  • endpoint_spec (EndpointSpec) -- 可配置为访问和负载平衡服务的属性。默认: None

  • env (list of str) -- 环境变量,格式为 KEY=val

  • hostname (string) -- 要在容器上设置的主机名。

  • init (boolean) -- 在转发信号和获取进程的容器内运行init

  • isolation (string) -- 服务的容器使用的隔离技术。仅用于Windows容器。

  • labels (dict) -- 要应用于服务的标签。

  • log_driver (str) -- 用于容器的日志驱动程序。

  • log_driver_options (dict) -- 记录驱动程序选项。

  • mode (ServiceMode) -- 服务的计划模式。默认:

  • mounts (list of str) -- 集装箱的底座,格式为 source:target:options ,其中的选项是 rorw

  • name (str) -- 要为服务提供的名称。

  • networks (list) -- 网络名称或ID列表或 NetworkAttachmentConfig 将服务附加到。默认: None

  • resources (Resources) -- 资源限制和预订。

  • restart_policy (RestartPolicy) -- 重新启动容器的策略。

  • secrets (list of SecretReference) -- 此服务的容器可访问的机密列表。

  • stop_grace_period (int) -- 在强行杀死容器之前等待容器终止的时间长度。

  • update_config (UpdateConfig) -- 服务的更新策略规范。默认: None

  • rollback_config (RollbackConfig) -- 服务的回滚策略规范。默认: None

  • user (str) -- 以用户身份运行命令。

  • workdir (str) -- 要运行的命令的工作目录。

  • tty (boolean) -- 是否应分配伪TTY。

  • groups (list) -- 容器进程将以其身份运行的其他组的列表。

  • open_stdin (boolean) -- 打开 stdin

  • read_only (boolean) -- 将容器的根文件系统挂载为只读。

  • stop_signal (string) -- 设置停止服务容器的信号

  • healthcheck (Healthcheck) -- 此服务的运行状况检查配置。

  • hosts (dict) -- 要添加到容器的主机到IP映射的集合 hosts 文件。

  • dns_config (DNSConfig) -- 解析程序配置文件中与DNS相关的配置规范。

  • configs (list) -- 清单 ConfigReference 将向该服务公开。

  • privileges (Privileges) -- 服务容器的安全选项。

  • cap_add (list) -- 要添加到容器默认集的内核功能列表。

  • cap_drop (list) -- 要从容器的默认设置中删除的内核功能列表。

  • sysctls (dict) -- 要添加到容器中的sysctl值的字典

返回:

创建的服务。

返回类型:

Service

抛出:

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

get(service_id, insert_defaults=None)

去找个服务生。

参数:
  • service_id (str) -- 服务的ID。

  • insert_defaults (boolean) -- 如果为True,则默认值将合并到输出中。

返回:

这项服务。

返回类型:

Service

抛出:
  • docker.errors.NotFound -- 如果该服务不存在。

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

  • docker.errors.InvalidVersion -- 如果当前API版本不支持其中一个参数。

list(**kwargs)

列出服务。

参数:
  • filters (dict) -- 要在节点列表上处理的筛选器。有效筛选器: idnamelabelmode 。默认: None

  • status (bool) -- 包括正在运行的任务和所需任务的服务任务计数。默认: None

返回:

这些服务。

返回类型:

清单 Service

抛出:

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

服务对象

class Service

一项服务。

id

对象的ID。

short_id

对象的ID,截断为12个字符。

name

服务的名称。

version

服务的版本号。如果这与服务器不同,则 update() 函数将不起作用,您需要调用 reload() 然后再打一次电话。

attrs

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

force_update()

强制更新服务,即使不需要更改也是如此。

返回:

True 如果成功了。

返回类型:

bool

logs(**kwargs)

获取服务的日志流。注意:此方法仅适用于具有 json-filejournald 记录驱动程序。

参数:
  • details (bool) -- 显示提供给日志的额外详细信息。默认: False

  • follow (bool) -- 保持连接打开,以便在引擎发送日志时读取日志。默认: False

  • stdout (bool) -- 将日志从 stdout 。默认: False

  • stderr (bool) -- 将日志从 stderr 。默认: False

  • since (int) -- 日志起始点的Unix时间戳。默认:0

  • timestamps (bool) -- 将时间戳添加到每个日志行。

  • tail (string or int) -- 要返回的日志行数,从日志的当前末尾开始计算。指定一个整数或 'all' 以输出所有日志行。默认: all

返回:

服务的日志。

返回类型:

generator

reload()

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

remove()

停止并删除该服务。

抛出:

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

scale(replicas)

扩展服务容器。

参数:

replicas (int) -- 应运行的容器数。

返回:

True 如果成功了。

返回类型:

bool

tasks(filters=None)

列出此服务中的任务。

参数:

filters (dict) -- 要在任务列表上处理的筛选器的映射。有效筛选器: idnamenodelabel ,以及 desired-state

返回:

任务词典列表。

返回类型:

list

抛出:

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

update(**kwargs)

更新服务的配置。类似于 docker service update 指挥部。

所采用的参数与 create()

抛出:

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