github.com/tompao/docker@v1.9.1/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 RemappedRoot string 31 SocketGroup string 32 Ulimits map[string]*ulimit.Ulimit 33 } 34 35 // bridgeConfig stores all the bridge driver specific 36 // configuration. 37 type bridgeConfig struct { 38 EnableIPv6 bool 39 EnableIPTables bool 40 EnableIPForward bool 41 EnableIPMasq bool 42 EnableUserlandProxy bool 43 DefaultIP net.IP 44 Iface string 45 IP string 46 FixedCIDR string 47 FixedCIDRv6 string 48 DefaultGatewayIPv4 net.IP 49 DefaultGatewayIPv6 net.IP 50 InterContainerCommunication bool 51 } 52 53 // InstallFlags adds command-line options to the top-level flag parser for 54 // the current process. 55 // Subsequent calls to `flag.Parse` will populate config with values parsed 56 // from the command-line. 57 func (config *Config) InstallFlags(cmd *flag.FlagSet, usageFn func(string) string) { 58 // First handle install flags which are consistent cross-platform 59 config.InstallCommonFlags(cmd, usageFn) 60 61 // Then platform-specific install flags 62 cmd.BoolVar(&config.EnableSelinuxSupport, []string{"-selinux-enabled"}, false, usageFn("Enable selinux support")) 63 cmd.StringVar(&config.SocketGroup, []string{"G", "-group"}, "docker", usageFn("Group for the unix socket")) 64 config.Ulimits = make(map[string]*ulimit.Ulimit) 65 cmd.Var(opts.NewUlimitOpt(&config.Ulimits), []string{"-default-ulimit"}, usageFn("Set default ulimits for containers")) 66 cmd.BoolVar(&config.Bridge.EnableIPTables, []string{"#iptables", "-iptables"}, true, usageFn("Enable addition of iptables rules")) 67 cmd.BoolVar(&config.Bridge.EnableIPForward, []string{"#ip-forward", "-ip-forward"}, true, usageFn("Enable net.ipv4.ip_forward")) 68 cmd.BoolVar(&config.Bridge.EnableIPMasq, []string{"-ip-masq"}, true, usageFn("Enable IP masquerading")) 69 cmd.BoolVar(&config.Bridge.EnableIPv6, []string{"-ipv6"}, false, usageFn("Enable IPv6 networking")) 70 cmd.StringVar(&config.Bridge.IP, []string{"#bip", "-bip"}, "", usageFn("Specify network bridge IP")) 71 cmd.StringVar(&config.Bridge.Iface, []string{"b", "-bridge"}, "", usageFn("Attach containers to a network bridge")) 72 cmd.StringVar(&config.Bridge.FixedCIDR, []string{"-fixed-cidr"}, "", usageFn("IPv4 subnet for fixed IPs")) 73 cmd.StringVar(&config.Bridge.FixedCIDRv6, []string{"-fixed-cidr-v6"}, "", usageFn("IPv6 subnet for fixed IPs")) 74 cmd.Var(opts.NewIPOpt(&config.Bridge.DefaultGatewayIPv4, ""), []string{"-default-gateway"}, usageFn("Container default gateway IPv4 address")) 75 cmd.Var(opts.NewIPOpt(&config.Bridge.DefaultGatewayIPv6, ""), []string{"-default-gateway-v6"}, usageFn("Container default gateway IPv6 address")) 76 cmd.BoolVar(&config.Bridge.InterContainerCommunication, []string{"#icc", "-icc"}, true, usageFn("Enable inter-container communication")) 77 cmd.Var(opts.NewIPOpt(&config.Bridge.DefaultIP, "0.0.0.0"), []string{"#ip", "-ip"}, usageFn("Default IP when binding container ports")) 78 cmd.BoolVar(&config.Bridge.EnableUserlandProxy, []string{"-userland-proxy"}, true, usageFn("Use userland proxy for loopback traffic")) 79 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")) 80 cmd.StringVar(&config.CorsHeaders, []string{"-api-cors-header"}, "", usageFn("Set CORS headers in the remote API")) 81 82 config.attachExperimentalFlags(cmd, usageFn) 83 }