changes.go 681 B

12345678910111213141516171819202122232425262728293031
  1. package daemon
  2. import (
  3. "errors"
  4. "runtime"
  5. "time"
  6. "github.com/docker/docker/pkg/archive"
  7. )
  8. // ContainerChanges returns a list of container fs changes
  9. func (daemon *Daemon) ContainerChanges(name string) ([]archive.Change, error) {
  10. start := time.Now()
  11. container, err := daemon.GetContainer(name)
  12. if err != nil {
  13. return nil, err
  14. }
  15. if runtime.GOOS == "windows" && container.IsRunning() {
  16. return nil, errors.New("Windows does not support diff of a running container")
  17. }
  18. container.Lock()
  19. defer container.Unlock()
  20. c, err := container.RWLayer.Changes()
  21. if err != nil {
  22. return nil, err
  23. }
  24. containerActions.WithValues("changes").UpdateSince(start)
  25. return c, nil
  26. }