default_template.go 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647
  1. package template
  2. import (
  3. "github.com/dotcloud/docker/pkg/apparmor"
  4. "github.com/dotcloud/docker/pkg/cgroups"
  5. "github.com/dotcloud/docker/pkg/libcontainer"
  6. )
  7. // New returns the docker default configuration for libcontainer
  8. func New() *libcontainer.Container {
  9. container := &libcontainer.Container{
  10. CapabilitiesMask: map[string]bool{
  11. "SETPCAP": false,
  12. "SYS_MODULE": false,
  13. "SYS_RAWIO": false,
  14. "SYS_PACCT": false,
  15. "SYS_ADMIN": false,
  16. "SYS_NICE": false,
  17. "SYS_RESOURCE": false,
  18. "SYS_TIME": false,
  19. "SYS_TTY_CONFIG": false,
  20. "AUDIT_WRITE": false,
  21. "AUDIT_CONTROL": false,
  22. "MAC_OVERRIDE": false,
  23. "MAC_ADMIN": false,
  24. "NET_ADMIN": false,
  25. "MKNOD": true,
  26. "SYSLOG": false,
  27. },
  28. Namespaces: map[string]bool{
  29. "NEWNS": true,
  30. "NEWUTS": true,
  31. "NEWIPC": true,
  32. "NEWPID": true,
  33. "NEWNET": true,
  34. },
  35. Cgroups: &cgroups.Cgroup{
  36. Parent: "docker",
  37. DeviceAccess: false,
  38. },
  39. Context: libcontainer.Context{},
  40. }
  41. if apparmor.IsEnabled() {
  42. container.Context["apparmor_profile"] = "docker-default"
  43. }
  44. return container
  45. }