builtins.go 1.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546
  1. package builtins
  2. import (
  3. api "github.com/dotcloud/docker/api/server"
  4. "github.com/dotcloud/docker/daemon/networkdriver/bridge"
  5. "github.com/dotcloud/docker/engine"
  6. "github.com/dotcloud/docker/registry"
  7. "github.com/dotcloud/docker/server"
  8. )
  9. func Register(eng *engine.Engine) error {
  10. if err := daemon(eng); err != nil {
  11. return err
  12. }
  13. if err := remote(eng); err != nil {
  14. return err
  15. }
  16. return registry.NewService().Install(eng)
  17. }
  18. // remote: a RESTful api for cross-docker communication
  19. func remote(eng *engine.Engine) error {
  20. return eng.Register("serveapi", api.ServeApi)
  21. }
  22. // daemon: a default execution and storage backend for Docker on Linux,
  23. // with the following underlying components:
  24. //
  25. // * Pluggable storage drivers including aufs, vfs, lvm and btrfs.
  26. // * Pluggable execution drivers including lxc and chroot.
  27. //
  28. // In practice `daemon` still includes most core Docker components, including:
  29. //
  30. // * The reference registry client implementation
  31. // * Image management
  32. // * The build facility
  33. // * Logging
  34. //
  35. // These components should be broken off into plugins of their own.
  36. //
  37. func daemon(eng *engine.Engine) error {
  38. if err := eng.Register("initserver", server.InitServer); err != nil {
  39. return err
  40. }
  41. return eng.Register("init_networkdriver", bridge.InitDriver)
  42. }