问题描述
想要从 Docker 服务的 inspect 数据中获取 PublishedPort
值,但他在尝试中遇到了困难。他提供了相关的数据,并希望能够正确地提取出 PublishedPort
值。
解决方案
在 Docker 服务的 inspect 数据中获取 PublishedPort
值需要正确的使用 docker service inspect
命令,并从输出的 JSON 数据中提取所需的信息。下面将介绍如何从给定的 inspect 数据中获取 PublishedPort
值。
步骤
请根据以下步骤执行,以获取 Docker 服务的 PublishedPort
值:
- 打开终端或命令提示符,进入适当的目录。
- 使用以下命令来获取 Docker 服务的 inspect 数据。将
My_app
替换为你实际的服务名称。
sh
docker service inspect My_app - 在输出的 JSON 数据中,定位到
Endpoint
部分。这是关于服务端口的信息。 - 在
Endpoint
部分中,找到Ports
字段,它是一个包含端口信息的数组。选择第一个元素,因为你的目标是获取第一个端口的PublishedPort
值。 - 提取
PublishedPort
值,这就是你要找的服务端口对外暴露的端口号。
以下是示例的命令行操作和示意图:
# 获取 Docker 服务的 inspect 数据
docker service inspect My_app
在输出的 JSON 数据中,定位到 Endpoint
部分和 Ports
字段,提取第一个端口的 PublishedPort
值。示意图如下:
"Endpoint": {
"Ports": [
{
"PublishedPort": 30001,
"TargetPort": 80,
"Protocol": "tcp",
"PublishMode": "ingress"
}
],
// 其他信息...
}
在这个示例中,PublishedPort
的值为 30001
。
请注意,输出的 JSON 数据可能会根据实际情况有所不同,但你需要定位到包含端口信息的部分,并提取所需的值。
引用注意事项
请注意以下操作可能的版本差异及风险,确保备份数据后再进行操作。
结论
通过正确使用 docker service inspect
命令,并从输出的 JSON 数据中提取 PublishedPort
值,你可以成功获取 Docker 服务端口对外暴露的端口号。在执行操作时,务必注意版本差异及数据备份,以防止意外情况的发生。
正文完