Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的镜像中,然后发布到任何流行的 Linux或Windows操作系统的机器上,也可以实现虚拟化。Docker是内核虚拟化,不使用Hypervisor是不完全虚拟化,依赖内核的特性实现资源隔离。本文主要介绍Docker CLI 中 docker service inspect 常用命令。

1、docker service inspect 简介

docker service inspect 命令是用于显示一个或多个服务的详细信息。它提供了关于服务的各种属性和配置的详细视图。

默认情况下,该命令以 JSON 数组的形式输出所有结果。如果指定了格式,将会为每个结果执行给定的模板。

可以通过 Go 的 text/template 包来了解格式的详细信息。

注意:

此命令是集群管理命令,必须在 Swarm 管理节点上执行。有关管理节点和工作节点的信息,请参阅文档中的 Swarm 模式部分。

参考文档:https://docs.docker.com/engine/reference/commandline/service_inspect/

2、docker service inspect 语法

docker service inspect [OPTIONS] SERVICE [SERVICE...]

3、docker service inspect 命令

1)按名称或 ID 检查服务

可以通过名称或 ID 检查一个服务。

例如,假设有以下服务:

docker service ls
ID            NAME   MODE        REPLICAS  IMAGE
dmu1ept4cxcf  redis  replicated  3/3       redis:3.0.6

通过以下命令可以检查服务,可以使用服务的名称或 ID:

docker service inspect redis

例如,以下两个命令都会产生相同的结果:

docker service inspect dmu1ept4cxcf

输出结果是以 JSON 格式呈现的,例如:

[
  {
    "ID": "dmu1ept4cxcfe8k8lhtux3ro3",
    "Version": {
      "Index": 12
    },
    "CreatedAt": "2016-06-17T18:44:02.558012087Z",
    "UpdatedAt": "2016-06-17T18:44:02.558012087Z",
    "Spec": {
      "Name": "redis",
      "TaskTemplate": {
        "ContainerSpec": {
          "Image": "redis:3.0.6"
        },
        "Resources": {
          "Limits": {},
          "Reservations": {}
        },
        "RestartPolicy": {
          "Condition": "any",
          "MaxAttempts": 0
        },
        "Placement": {}
      },
      "Mode": {
        "Replicated": {
          "Replicas": 1
        }
      },
      "UpdateConfig": {},
      "EndpointSpec": {
        "Mode": "vip"
      }
    },
    "Endpoint": {
      "Spec": {}
    }
  }
]
docker service inspect dmu1ept4cxcf

[
  {
    "ID": "dmu1ept4cxcfe8k8lhtux3ro3",
    "Version": {
      "Index": 12
    },
    ...
  }
]

2)格式化输出(--pretty)

可以使用 --pretty 选项将检查结果以人类可读的格式打印,而不是默认的 JSON 格式输出:

docker service inspect --pretty frontend

ID:     c8wgl7q4ndfd52ni6qftkvnnp
Name:   frontend
Labels:
 - org.example.projectname=demo-app
Service Mode:   REPLICATED
 Replicas:      5
Placement:
UpdateConfig:
 Parallelism:   0
 On failure:    pause
 Max failure ratio: 0
ContainerSpec:
 Image:     nginx:alpine
Resources:
Networks:   net1
Endpoint Mode:  vip
Ports:
 PublishedPort = 4443
  Protocol = tcp
  TargetPort = 443
  PublishMode = ingress

也可以使用 --format pretty 来达到相同的效果。

3)格式化输出(--format)

可以使用 --format 选项来获取有关服务的特定信息。例如,以下命令输出“redis”服务的副本数量:

docker service inspect --format='{{.Spec.Mode.Replicated.Replicas}}' redis

10

4、命令选项

名称

默认值

描述

--format, -f

使用自定义模板格式化输出。

'json':以 JSON 格式打印。

'TEMPLATE':使用给定的 Go 模板打印输出。

有关使用模板格式化输出的更多信息,

请参考

https://docs.docker.com/go/formatting/

--pretty

以人类友好的格式打印信息。

5、子命令

命令

描述

docker service create

创建新的服务

docker service inspect

显示一个或多个服务的详细信息

docker service logs

获取一个服务或任务的日志

docker service ls

列出服务

docker service ps

列出一个或多个服务的任务

docker service rm

删除一个或多个服务

docker service rollback

恢复服务配置的更改

docker service scale

缩放一个或多个复制的服务

docker service update

更新一个服务的配置

推荐文档

相关文档

大家感兴趣的内容

随机列表