小编Adi*_*dit的帖子

在docka api的golang sdk中为ContainerCreate函数设置PortBindings配置

基本上我需要这样的东西

docker run -p something:something --name xxxx imagename
Run Code Online (Sandbox Code Playgroud)

在golang sdk(这一个https://docs.docker.com/engine/api/sdks/)的docker api中,我当前的代码看起来像这样

exposedPorts, portBindings, _ := nat.ParsePortSpecs([]string{
    "127.0.0.1:8080:2368",
})
// Running the ghost container
createdBody, err := dockerClient.ContainerCreate(context.Background(),
    &container.Config{
        Image:        "ghost:latest",
        ExposedPorts: exposedPorts,// it supposed to be nat.PortSet
    },
    &container.HostConfig{
        PortBindings: portBindings,// it supposed to be nat.PortMap
    },
    &network.NetworkingConfig{},
    containerName)
Run Code Online (Sandbox Code Playgroud)

我正在使用这个https://github.com/docker/go-connections/blob/master/nat/nat.go#L126 ParsePortSpecs函数返回(map [Port] struct {},map [Port] [] PortBinding ,错误)但失败,因为container.Config.ExposedPorts是nat.PortSet(它实际上是map [Port] struct {} tho)和containter.HostConfig.PortBindins是nat.PortMap

我不确定我是否要使用此客户端https://github.com/fsouza/go-dockerclient,因为我当前版本的docker API为1.25,并且它不支持高于1.23的API版本

go docker docker-api

6
推荐指数
2
解决办法
2852
查看次数

标签 统计

docker ×1

docker-api ×1

go ×1