使用Bash/Shell脚本获取Docker Swarm 服务和任务副本的IP地址以及宿主机的IP地址

使用Bash/Shell脚本获取Docker Swarm 服务和任务副本的IP地址以及宿主机的IP地址

问题描述

在日常运维中,你可能会遇到以下几个问题:

  1. 如何快速获取每个Docker服务的任务的IP地址?
  2. 如何获取任务所在宿主机的IP地址?
  3. 在微服务中通过链路追踪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 
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值