基本上我需要这样的东西
docker run -p something:something --name xxxx imagename
在 docker api 的 golang sdk(这个https://docs.docker.com/engine/api/sdks/)中,我当前的代码如下所示
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)
我正在使用这个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)并且 container.HostConfig.PortBindins 是 nat.PortMap
我不确定我是否要使用此客户端https://github.com/fsouza/go-dockerclient因为我当前的 docker API 版本是 1.25,它不支持 1.23 以上的 API 版本