如何使用Docker引擎SDK和Golang运行Docker安装卷

w8f9ii69  于 2022-12-03  发布在  Docker
关注(0)|答案(1)|浏览(141)

我一直在查看与使用Golang(https://docs.docker.com/engine/api/sdk/)运行Docker相关的Docker引擎SDK文档,我想运行一个容器(文档记录良好),但我找不到在运行容器时如何挂载卷。
我的想法是使用Docker SDK运行等效的命令:docker run -v $PWD:/tmp myimage但不执行Golang os exec库。
这可能吗?

gxwragnw

gxwragnw1#

示例部分包含您所需的大部分内容:
https://docs.docker.com/engine/api/sdk/examples/#run-a-container
请务必记住,docker run ...可以同时执行这两项操作
1.创建容器
1.启动容器
docker run -vdocker run --mount type=bind,source="$(pwd)"/target,target=/app简写

resp, err := cli.ContainerCreate(ctx, &container.Config{
        Image: "alpine",
        Cmd:   []string{"echo", "hello world",},
      },
      &container.HostConfig{
        Mounts: []mount.Mount{
          {
             Type: mount.TypeBind,
             Source: "/local/dir",
             Target: "/app",
          },
        },
     },
     nil,
     "",
   )

如果只需要单个文件

resp, err := cli.ContainerCreate(ctx, &container.Config{
        Image: "alpine",
        Cmd:   []string{"echo", "hello world",},
      },
      &container.HostConfig{
        Binds: []string{
          "/local/dir/file.txt:/app/file.txt",
        },
      },
      nil,
      "",
   )

相关产品:

相关问题