Golang Docker SDK 获取容器 IPv4、IPv6 地址和 MAC 地址
要获取容器的 IPv4 地址,可以使用 Docker SDK 中的 ContainerInspect 方法来检查容器的网络配置,然后从中提取 IPv4 地址。以下是一个示例代码片段:
import (
"context"
"github.com/docker/docker/api/types"
"github.com/docker/docker/client"
)
func main() {
cli, err := client.NewEnvClient()
if err != nil {
panic(err)
}
ctx := context.Background()
containerID := "my_container_id"
inspect, err := cli.ContainerInspect(ctx, containerID)
if err != nil {
panic(err)
}
// 获取 IPv4 地址
ip := inspect.NetworkSettings.IPAddress
// 获取 IPv6 地址
ipv6 := inspect.NetworkSettings.GlobalIPv6Address
// 获取 MAC 地址
mac := inspect.NetworkSettings.MacAddress
// 打印地址和 MAC 地址
fmt.Printf("IPv4 地址: %s\n", ip)
fmt.Printf("IPv6 地址: %s\n", ipv6)
fmt.Printf("MAC 地址: %s\n", mac)
}
请注意,这只适用于容器已经运行并且已经分配了 IP 地址的情况。如果容器没有运行或者还没有分配 IP 地址,那么这些值将为空。
原文地址: https://www.cveoy.top/t/topic/fWh3 著作权归作者所有。请勿转载和采集!