为什么文件夹没有绑定?

我正在尝试使用https://pkg.go.dev/github.com/fsouza/go-dockerclient?tab=doc创建一个用于测试目的的容器,如下所示:


client, err := docker.NewClientFromEnv()

NoError(t, err, err)


ctx := context.Background()


gogs, err := client.CreateContainer(docker.CreateContainerOptions{

    Name: "gogs",

    Config: &docker.Config{

        Image: "gogs/gogs:0.11.91",

    },

    HostConfig: &docker.HostConfig{

        PublishAllPorts: true,

        AutoRemove:      true,

        Binds:           []string{dest, "/data"},

        PortBindings: map[docker.Port][]docker.PortBinding{

            "3000/tcp": {{HostIP: "0.0.0.0", HostPort: "8888"}}},

    },

    Context: ctx,

})

NoError(t, err, err)


err = client.StartContainer(gogs.ID, nil)

NoError(t, err, err)

问题是,绑定不起作用。我想要实现的是:


docker run --rm -it -p 8888:3000 --name=gogs --mount type=bind,source=`pwd`/gogs/data,target=/data gogs/gogs 

我究竟做错了什么?


呼如林
浏览 108回答 1
1回答

慕的地10843

安装路径时,您可以Mounts像HostConfig这样附加:&container.HostConfig{     Mounts: []mount.Mount{         {             Type:   mount.TypeBind,             Source: "/source",             Target: "/target",         },     },}这将安装/source到容器中。
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

Go