使用Bash/Shell脚本获取Docker Swarm 服务和任务副本的IP地址以及宿主机的IP地址
问题描述
在日常运维中,你可能会遇到以下几个问题:
- 如何快速获取每个Docker服务的任务的IP地址?
- 如何获取任务所在宿主机的IP地址?
- 在微服务中通过链路追踪skywalking找到问题,无法定位每个服务具体在哪里。
解决方案:Bash脚本
设计了一个Bash脚本,能够自动化完成上述任务。该脚本通过调用Docker命令,获取每个服务的任务ID和IP地址,同时也获取了任务所在宿主机的IP地址,并以表格形式输出结果。
脚本功能
- 获取所有Docker服务名称
- 获取每个服务的所有任务ID和任务所在节点ID
- 获取每个任务的IP地址
- 获取任务所在宿主机的IP地址
- 以表格形式输出服务名称、任务ID、任务IP地址和宿主机IP地址
脚本代码
以下是完整的Bash脚本代码:
#!/bin/bash
# 打印表头
printf "%-30s %-20s %-20s %-20s %-20s\n" "Service" "Task ID" "Container ID" "Task IP" "Node IP"
# 获取所有服务名称
docker service ls --format '{
{.Name}}' | while read -r service; do
# 获取每个服务的所有任务
docker service ps --format "{
{.ID}} {
{.Node}} {
{.Name}}" "$service" | while read

最低0.47元/天 解锁文章
1641

被折叠的 条评论
为什么被折叠?



