在Go Docker SDK中,可以通过使用container.HostConfig字段来修改容器的HostConfig。以下是一个示例:

import (
    "context"
    "github.com/docker/docker/api/types"
    "github.com/docker/docker/api/types/container"
    "github.com/docker/docker/client"
)

func main() {
    cli, err := client.NewClientWithOpts(client.FromEnv)
    if err != nil {
        panic(err)
    }

    // 创建一个容器
    resp, err := cli.ContainerCreate(context.Background(), &container.Config{
        Image: "nginx",
    }, &container.HostConfig{
        PortBindings: nat.PortMap{
            "80/tcp": []nat.PortBinding{
                {
                    HostIP:   "0.0.0.0",
                    HostPort: "8080",
                },
            },
        },
    }, nil, "")
    if err != nil {
        panic(err)
    }

    // 启动容器
    if err := cli.ContainerStart(context.Background(), resp.ID, types.ContainerStartOptions{}); err != nil {
        panic(err)
    }

    // 修改容器的HostConfig
    hostConfig := &container.HostConfig{
        PortBindings: nat.PortMap{
            "80/tcp": []nat.PortBinding{
                {
                    HostIP:   "0.0.0.0",
                    HostPort: "8081",
                },
            },
        },
    }
    if err := cli.ContainerUpdate(context.Background(), resp.ID, container.UpdateConfig{
        HostConfig: hostConfig,
    }); err != nil {
        panic(err)
    }
}

在这个示例中,我们首先创建了一个Nginx容器,并将其绑定到本地端口8080。然后,我们使用ContainerUpdate方法来修改容器的HostConfig,将其绑定到本地端口8081

golang docker sdk中ContainerUpdate方法不支持修改HostConfig有没有办法可以修改HostConfigContainerUpdateOptions里面也没有HostConfig配置也没有HostConfigPath配置了docker sdk中还有哪里可以修改HostConfig

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

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