要获取容器的 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 地址,那么这些值将为空。

Golang Docker SDK 获取容器 IPv4、IPv6 地址和 MAC 地址

原文地址: https://www.cveoy.top/t/topic/fWh3 著作权归作者所有。请勿转载和采集!

免费AI点我,无需注册和登录