Golang 修改 Docker 容器 HostConfig 配置指南
可以使用 Docker API 来修改容器的 HostConfig 配置。具体步骤如下:
-
使用 Docker API 的
/containers/{id}/json接口获取容器的详细信息,包括 HostConfig 配置。 -
修改 HostConfig 配置,例如添加或删除端口映射、修改容器的网络配置等。
-
使用 Docker API 的
/containers/{id}/update接口将修改后的 HostConfig 配置应用到容器中。
示例代码:
package main
import (
"context"
"encoding/json"
"fmt"
"github.com/docker/docker/api/types"
"github.com/docker/docker/api/types/container"
"github.com/docker/docker/client"
"log"
)
func main() {
// 创建 Docker 客户端
cli, err := client.NewClientWithOpts(client.FromEnv)
if err != nil {
log.Fatal(err)
}
// 获取容器详细信息
containerInfo, err := cli.ContainerInspect(context.Background(), 'container-id')
if err != nil {
log.Fatal(err)
}
// 修改 HostConfig 配置
containerInfo.HostConfig.PortBindings = map[container.Port][]container.PortBinding{
'80/tcp': {{HostIP: '0.0.0.0', HostPort: '8080'}},
}
// 应用 HostConfig 配置
updateConfig := types.UpdateConfig{
HostConfig: &containerInfo.HostConfig,
}
resp, err := cli.ContainerUpdate(context.Background(), 'container-id', updateConfig)
if err != nil {
log.Fatal(err)
}
fmt.Println(resp)
}
注意:需要替换 container-id 为需要修改的容器 ID。
原文地址: https://www.cveoy.top/t/topic/kUf3 著作权归作者所有。请勿转载和采集!