Docker Golang SDK – 如何将容器标准输出redirect到一个文件

使用docker golang sdk,可以使用以下方法创build一个容器并将其输出绑定到stdout

 resp, err := cli.ContainerCreate(ctx, &container.Config{ Image: "alpine", Cmd: []string{"echo", "Hello World"}, AttachStdout: true, }, nil, nil, "") 

我怎样才能把这个输出redirect到使用SDK的文件? 我使用github.com/docker/docker/client的官方SDK – github.com/docker/docker/client

你可以使用下面的东西

  out, err := cli.ContainerLogs(ctx, resp.ID, types.ContainerLogsOptions{ShowStdout: true}) if err != nil { panic(err) } f, err := os.Create("/tmp/clogs") io.Copy(f, out) 

但是一定要在启动容器后这样做,Create将只创build容器而不启动它