github.com/chenchun/docker@v1.3.2-0.20150629222414-20467faf132b/daemon/execdriver/native/template/default_template.go (about) 1 package template 2 3 import ( 4 "syscall" 5 6 "github.com/docker/libcontainer/apparmor" 7 "github.com/docker/libcontainer/configs" 8 ) 9 10 const defaultMountFlags = syscall.MS_NOEXEC | syscall.MS_NOSUID | syscall.MS_NODEV 11 12 // New returns the docker default configuration for libcontainer 13 func New() *configs.Config { 14 container := &configs.Config{ 15 Capabilities: []string{ 16 "CHOWN", 17 "DAC_OVERRIDE", 18 "FSETID", 19 "FOWNER", 20 "MKNOD", 21 "NET_RAW", 22 "SETGID", 23 "SETUID", 24 "SETFCAP", 25 "SETPCAP", 26 "NET_BIND_SERVICE", 27 "SYS_CHROOT", 28 "KILL", 29 "AUDIT_WRITE", 30 }, 31 Namespaces: configs.Namespaces([]configs.Namespace{ 32 {Type: "NEWNS"}, 33 {Type: "NEWUTS"}, 34 {Type: "NEWIPC"}, 35 {Type: "NEWPID"}, 36 {Type: "NEWNET"}, 37 }), 38 Cgroups: &configs.Cgroup{ 39 Parent: "docker", 40 AllowAllDevices: false, 41 MemorySwappiness: -1, 42 }, 43 Mounts: []*configs.Mount{ 44 { 45 Source: "proc", 46 Destination: "/proc", 47 Device: "proc", 48 Flags: defaultMountFlags, 49 }, 50 { 51 Source: "tmpfs", 52 Destination: "/dev", 53 Device: "tmpfs", 54 Flags: syscall.MS_NOSUID | syscall.MS_STRICTATIME, 55 Data: "mode=755", 56 }, 57 { 58 Source: "devpts", 59 Destination: "/dev/pts", 60 Device: "devpts", 61 Flags: syscall.MS_NOSUID | syscall.MS_NOEXEC, 62 Data: "newinstance,ptmxmode=0666,mode=0620,gid=5", 63 }, 64 { 65 Device: "tmpfs", 66 Source: "shm", 67 Destination: "/dev/shm", 68 Data: "mode=1777,size=65536k", 69 Flags: defaultMountFlags, 70 }, 71 { 72 Source: "mqueue", 73 Destination: "/dev/mqueue", 74 Device: "mqueue", 75 Flags: defaultMountFlags, 76 }, 77 { 78 Source: "sysfs", 79 Destination: "/sys", 80 Device: "sysfs", 81 Flags: defaultMountFlags | syscall.MS_RDONLY, 82 }, 83 }, 84 MaskPaths: []string{ 85 "/proc/kcore", 86 "/proc/latency_stats", 87 "/proc/timer_stats", 88 }, 89 ReadonlyPaths: []string{ 90 "/proc/asound", 91 "/proc/bus", 92 "/proc/fs", 93 "/proc/irq", 94 "/proc/sys", 95 "/proc/sysrq-trigger", 96 }, 97 } 98 99 if apparmor.IsEnabled() { 100 container.AppArmorProfile = "docker-default" 101 } 102 103 return container 104 }