github.com/mheon/docker@v0.11.2-0.20150922122814-44f47903a831/daemon/config.go (about) 1 package daemon 2 3 import ( 4 "github.com/docker/docker/opts" 5 flag "github.com/docker/docker/pkg/mflag" 6 "github.com/docker/docker/runconfig" 7 ) 8 9 const ( 10 defaultNetworkMtu = 1500 11 disableNetworkBridge = "none" 12 ) 13 14 // CommonConfig defines the configuration of a docker daemon which are 15 // common across platforms. 16 type CommonConfig struct { 17 AutoRestart bool 18 Bridge bridgeConfig // Bridge holds bridge network specific configuration. 19 Context map[string][]string 20 DisableBridge bool 21 DNS []string 22 DNSOptions []string 23 DNSSearch []string 24 ExecDriver string 25 ExecOptions []string 26 ExecRoot string 27 GraphDriver string 28 GraphOptions []string 29 Labels []string 30 LogConfig runconfig.LogConfig 31 Mtu int 32 Pidfile string 33 Root string 34 TrustKeyPath string 35 DefaultNetwork string 36 NetworkKVStore string 37 } 38 39 // InstallCommonFlags adds command-line options to the top-level flag parser for 40 // the current process. 41 // Subsequent calls to `flag.Parse` will populate config with values parsed 42 // from the command-line. 43 func (config *Config) InstallCommonFlags(cmd *flag.FlagSet, usageFn func(string) string) { 44 cmd.Var(opts.NewListOptsRef(&config.GraphOptions, nil), []string{"-storage-opt"}, usageFn("Set storage driver options")) 45 cmd.Var(opts.NewListOptsRef(&config.ExecOptions, nil), []string{"-exec-opt"}, usageFn("Set exec driver options")) 46 cmd.StringVar(&config.Pidfile, []string{"p", "-pidfile"}, defaultPidFile, usageFn("Path to use for daemon PID file")) 47 cmd.StringVar(&config.Root, []string{"g", "-graph"}, defaultGraph, usageFn("Root of the Docker runtime")) 48 cmd.StringVar(&config.ExecRoot, []string{"-exec-root"}, "/var/run/docker", usageFn("Root of the Docker execdriver")) 49 cmd.BoolVar(&config.AutoRestart, []string{"#r", "#-restart"}, true, usageFn("--restart on the daemon has been deprecated in favor of --restart policies on docker run")) 50 cmd.StringVar(&config.GraphDriver, []string{"s", "-storage-driver"}, "", usageFn("Storage driver to use")) 51 cmd.StringVar(&config.ExecDriver, []string{"e", "-exec-driver"}, defaultExec, usageFn("Exec driver to use")) 52 cmd.IntVar(&config.Mtu, []string{"#mtu", "-mtu"}, 0, usageFn("Set the containers network MTU")) 53 // FIXME: why the inconsistency between "hosts" and "sockets"? 54 cmd.Var(opts.NewListOptsRef(&config.DNS, opts.ValidateIPAddress), []string{"#dns", "-dns"}, usageFn("DNS server to use")) 55 cmd.Var(opts.NewListOptsRef(&config.DNSOptions, nil), []string{"-dns-opt"}, usageFn("DNS options to use")) 56 cmd.Var(opts.NewListOptsRef(&config.DNSSearch, opts.ValidateDNSSearch), []string{"-dns-search"}, usageFn("DNS search domains to use")) 57 cmd.Var(opts.NewListOptsRef(&config.Labels, opts.ValidateLabel), []string{"-label"}, usageFn("Set key=value labels to the daemon")) 58 cmd.StringVar(&config.LogConfig.Type, []string{"-log-driver"}, "json-file", usageFn("Default driver for container logs")) 59 cmd.Var(opts.NewMapOpts(config.LogConfig.Config, nil), []string{"-log-opt"}, usageFn("Set log driver options")) 60 }