【发布时间】:2017-11-20 15:52:56
【问题描述】:
我正在尝试使用可从 github.com/docker/docker/client 获得的用于 golang 的 docker API。到目前为止,我能够在构建映像期间预定义的端口上启动容器。我正在尝试在运行时使用 API 映射端口;相当于
docker run -p 8083:8082 -d myImage:1.0.0
我尝试执行以下操作来映射端口:
host_config := &container.HostConfig{
PortBindings: nat.PortMap{
"8082/tcp": []nat.PortBinding{
{
HostIP: "0.0.0.0",
HostPort: "8983",
},
},
},
}
这里的问题是变量“nat”位于 API 的供应商文件夹中。我无法直接从 go vendor 文件夹中导入某些内容。 stackoverflow 上有人建议将 go-connection 文件夹复制到 github 文件夹中,并删除嵌套的 vendor 目录。我按照建议做了,并创建了如下路径:
"github.com/docker/go-connections/nat"
现在我在编译时收到以下错误:
src\main\createcontainer1.go:53: cannot use "github.com/docker/go-connections/nat".PortSet literal (type "github.com/docker/go-connections/nat".PortSet) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortSet in field value
src\main\createcontainer1.go:65: cannot use "github.com/docker/go-connections/nat".PortMap literal (type "github.com/docker/go-connections/nat".PortMap) as type "github.com/docker/docker/vendor/github.com/docker/go-connections/nat".PortMap in field value
有没有人遇到过这个问题并克服了它?我正在使用 Go 版本 1.8。
【问题讨论】:
-
您不能有嵌套的供应商文件夹,因此您需要正确供应您的依赖项。另外,导入路径现在是
github.com/moby/moby。
标签: api docker go client docker-api