Golang 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。
原文地址: https://www.cveoy.top/t/topic/kFLc 著作权归作者所有。请勿转载和采集!