github.com/mheon/docker@v0.11.2-0.20150922122814-44f47903a831/daemon/config_unix.go (about) 1 // +build linux freebsd 2 3 package daemon 4 5 import ( 6 "net" 7 8 "github.com/docker/docker/opts" 9 flag "github.com/docker/docker/pkg/mflag" 10 "github.com/docker/docker/pkg/ulimit" 11 ) 12 13 var ( 14 defaultPidFile = "/var/run/docker.pid" 15 defaultGraph = "/var/lib/docker" 16 defaultExec = "native" 17 ) 18 19 // Config defines the configuration of a docker daemon. 20 // These are the configuration settings that you pass 21 // to the docker daemon when you launch it with say: `docker daemon -e lxc` 22 type Config struct { 23 CommonConfig 24 25 // Fields below here are platform specific. 26 27 CorsHeaders string 28 EnableCors bool 29 EnableSelinuxSupport bool 30 SocketGroup string 31 Ulimits map[string]*ulimit.Ulimit 32 } 33 34 // bridgeConfig stores all the bridge driver specific 35 // configuration. 36 type bridgeConfig struct { 37 EnableIPv6 bool 38 EnableIPTables bool 39 EnableIPForward bool 40 EnableIPMasq bool 41 EnableUserlandProxy bool 42 DefaultIP net.IP 43 Iface string 44 IP string 45 FixedCIDR string 46 FixedCIDRv6 string 47 DefaultGatewayIPv4 net.IP 48 DefaultGatewayIPv6 net.IP 49 InterContainerCommunication bool 50 } 51 52 // InstallFlags adds command-line options to the top-level flag parser for 53 // the current process. 54 // Subsequent calls to `flag.Parse` will populate config with values parsed 55 // from the command-line. 56 func (config *Config) InstallFlags(cmd *flag.FlagSet, usageFn func(string) string) { 57 // First handle install flags which are consistent cross-platform 58 config.InstallCommonFlags(cmd, usageFn) 59 60 // Then platform-specific install flags 61 cmd.BoolVar(&config.EnableSelinuxSupport, []string{"-selinux-enabled"}, false, usageFn("Enable selinux support")) 62 cmd.StringVar(&config.SocketGroup, []string{"G", "-group"}, "docker", usageFn("Group for the unix socket")) 63 config.Ulimits = make(map[string]*ulimit.Ulimit) 64 cmd.Var(opts.NewUlimitOpt(&config.Ulimits), []string{"-default-ulimit"}, usageFn("Set default ulimits for containers")) 65 cmd.BoolVar(&config.Bridge.EnableIPTables, []string{"#iptables", "-iptables"}, true, usageFn("Enable addition of iptables rules")) 66 cmd.BoolVar(&config.Bridge.EnableIPForward, []string{"#ip-forward", "-ip-forward"}, true, usageFn("Enable net.ipv4.ip_forward")) 67 cmd.BoolVar(&config.Bridge.EnableIPMasq, []string{"-ip-masq"}, true, usageFn("Enable IP masquerading")) 68 cmd.BoolVar(&config.Bridge.EnableIPv6, []string{"-ipv6"}, false, usageFn("Enable IPv6 networking")) 69 cmd.StringVar(&config.Bridge.IP, []string{"#bip", "-bip"}, "", usageFn("Specify network bridge IP")) 70 cmd.StringVar(&config.Bridge.Iface, []string{"b", "-bridge"}, "", usageFn("Attach containers to a network bridge")) 71 cmd.StringVar(&config.Bridge.FixedCIDR, []string{"-fixed-cidr"}, "", usageFn("IPv4 subnet for fixed IPs")) 72 cmd.StringVar(&config.Bridge.FixedCIDRv6, []string{"-fixed-cidr-v6"}, "", usageFn("IPv6 subnet for fixed IPs")) 73 cmd.Var(opts.NewIPOpt(&config.Bridge.DefaultGatewayIPv4, ""), []string{"-default-gateway"}, usageFn("Container default gateway IPv4 address")) 74 cmd.Var(opts.NewIPOpt(&config.Bridge.DefaultGatewayIPv6, ""), []string{"-default-gateway-v6"}, usageFn("Container default gateway IPv6 address")) 75 cmd.BoolVar(&config.Bridge.InterContainerCommunication, []string{"#icc", "-icc"}, true, usageFn("Enable inter-container communication")) 76 cmd.Var(opts.NewIPOpt(&config.Bridge.DefaultIP, "0.0.0.0"), []string{"#ip", "-ip"}, usageFn("Default IP when binding container ports")) 77 cmd.BoolVar(&config.Bridge.EnableUserlandProxy, []string{"-userland-proxy"}, true, usageFn("Use userland proxy for loopback traffic")) 78 cmd.BoolVar(&config.EnableCors, []string{"#api-enable-cors", "#-api-enable-cors"}, false, usageFn("Enable CORS headers in the remote API, this is deprecated by --api-cors-header")) 79 cmd.StringVar(&config.CorsHeaders, []string{"-api-cors-header"}, "", usageFn("Set CORS headers in the remote API")) 80 81 config.attachExperimentalFlags(cmd, usageFn) 82 }