我目前正在尝试使用官方GoLang Docker SDK创建一个Docker容器,并尝试将一个卷从我的本地主机挂载到Docker容器。
vol := map[string]struct{}{"/pathInDocker":{}}
// This was prepared using example at:
//https://docs.docker.com/develop/sdk/examples/#run-a-container
res, err := cli.ContainerCreate(ctx, &container.Config{
    Image: testImageName,
    Volumes: vol,
    Cmd: []string{"ls", "/"},
}, nil, nil, "")
这可以在创建容器并将“ / pathInDocker”添加到docker容器时起作用,但是,我无法弄清楚如何为本地主机添加安装点。
我已经尝试了以下vol变量的可能值
vol := map[string]struct{}{"localPath:/pathInDocker":{}}
vol := map[string]struct{}{"\"localPath\":\"/pathInDocker\"":{}}
对于每个这些,最终的docker容器都会尝试将map密钥作为docker中的文件夹安装,而没有localhost的安装点。
我已经仔细阅读了文档,似乎似乎只能找到关于如何配置卷的唯一内容:
Volumes         map[string]struct{} // List of volumes (mounts) used for the container
所以我的问题是如何配置它,以便将本地文件夹安装到该卷?
如果要使用绑定安装,则需要在HostConfig中提供安装信息。
res, err := client.ContainerCreate(
    ctx,
    &container.Config{
        Image: "nginx",
        Cmd:   []string{"ls", "/"},
    },
    &container.HostConfig{
        Mounts: []mount.Mount{
            {
                Type:   mount.TypeBind,
                Source: "/localPath",
                Target: "/pathInDocker",
            },
        },
    },
    nil,
    "",
)
而且,如果要使用卷,则首先需要创建具有装载路径的卷,然后需要将此卷名称用作“源”。
| 归档时间: | 
 | 
| 查看次数: | 2063 次 | 
| 最近记录: |