moby--moby/daemon/export.go

30 lines
749 B
Go
Raw Normal View History

package daemon
import (
"io"
"github.com/docker/docker/context"
derr "github.com/docker/docker/errors"
)
// ContainerExport writes the contents of the container to the given
// writer. An error is returned if the container cannot be found.
func (daemon *Daemon) ContainerExport(ctx context.Context, name string, out io.Writer) error {
container, err := daemon.Get(ctx, name)
if err != nil {
return err
}
data, err := container.export(ctx)
if err != nil {
return derr.ErrorCodeExportFailed.WithArgs(name, err)
}
defer data.Close()
// Stream the entire contents of the container (basically a volatile snapshot)
if _, err := io.Copy(out, data); err != nil {
return derr.ErrorCodeExportFailed.WithArgs(name, err)
}
return nil
}