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容器而不启动它