我如何使用map [string] struct {}

时间:2014-12-02 12:00:15

标签: go docker

所以我正忙着使用http://godoc.org/github.com/samalba/dockerclient

使用CreateContainer(http://godoc.org/github.com/samalba/dockerclient#DockerClient.CreateContainer

设置新容器

containerConfig := &dockerclient.ContainerConfig{
    Image:        imageName,
    AttachStdin:  true,
    AttachStdout: true,
    AttachStderr: true}

containerID, err = docker.CreateContainer(containerConfig, containerName)

正常工作,我得到一个容器,但没有暴露的端口。查看docker API(https://docs.docker.com/reference/api/docker_remote_api_v1.15/),我需要设置

" ExposedPorts - 将端口映射到空对象的对象,格式为:" ExposedPorts":{" /:{}" }"

查看我正在使用的Go dockclient lib的godoc,我看到你可以将它传递给

ExposedPorts    map[string]struct{}

但我不知道该怎么做,从docker api示例传递:

 "ExposedPorts":{
             "22/tcp": {}
     }

就足够了,那么如何在我的containerConfig中执行struct位?

1 个答案:

答案 0 :(得分:2)

将它放在你的containerConfig

ExposedPorts: map[string]struct{}{
    "22/tcp": {},
}

例如

containerConfig := &dockerclient.ContainerConfig{
    Image:        imageName,
    AttachStdin:  true,
    AttachStdout: true,
    AttachStderr: true,
    ExposedPorts: map[string]struct{}{
        "22/tcp": {},
    },
}

Playground