golang docker sdk中ContainerUpdate方法不支持修改HostConfig有没有办法可以修改HostConfigContainerUpdateOptions里面也没有HostConfig配置也没有HostConfigPath配置了docker sdk中还有哪里可以修改HostConfig
在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
原文地址: http://www.cveoy.top/t/topic/djrs 著作权归作者所有。请勿转载和采集!