github.com/jiasir/docker@v1.3.3-0.20170609024000-252e610103e7/cmd/dockerd/config.go (about)

     1  package main
     2  
     3  import (
     4  	"github.com/docker/docker/daemon/config"
     5  	"github.com/docker/docker/opts"
     6  	"github.com/spf13/pflag"
     7  )
     8  
     9  const (
    10  	// defaultShutdownTimeout is the default shutdown timeout for the daemon
    11  	defaultShutdownTimeout = 15
    12  	// defaultTrustKeyFile is the default filename for the trust key
    13  	defaultTrustKeyFile = "key.json"
    14  )
    15  
    16  // installCommonConfigFlags adds flags to the pflag.FlagSet to configure the daemon
    17  func installCommonConfigFlags(conf *config.Config, flags *pflag.FlagSet) {
    18  	var maxConcurrentDownloads, maxConcurrentUploads int
    19  
    20  	conf.ServiceOptions.InstallCliFlags(flags)
    21  
    22  	flags.Var(opts.NewNamedListOptsRef("storage-opts", &conf.GraphOptions, nil), "storage-opt", "Storage driver options")
    23  	flags.Var(opts.NewNamedListOptsRef("authorization-plugins", &conf.AuthorizationPlugins, nil), "authorization-plugin", "Authorization plugins to load")
    24  	flags.Var(opts.NewNamedListOptsRef("exec-opts", &conf.ExecOptions, nil), "exec-opt", "Runtime execution options")
    25  	flags.StringVarP(&conf.Pidfile, "pidfile", "p", defaultPidFile, "Path to use for daemon PID file")
    26  	flags.StringVarP(&conf.Root, "graph", "g", defaultDataRoot, "Root of the Docker runtime")
    27  
    28  	// "--graph" is "soft-deprecated" in favor of "data-root". This flag was added
    29  	// before Docker 1.0, so won't be removed, only hidden, to discourage its usage.
    30  	flags.MarkHidden("graph")
    31  
    32  	flags.StringVar(&conf.Root, "data-root", defaultDataRoot, "Root directory of persistent Docker state")
    33  
    34  	flags.BoolVarP(&conf.AutoRestart, "restart", "r", true, "--restart on the daemon has been deprecated in favor of --restart policies on docker run")
    35  	flags.MarkDeprecated("restart", "Please use a restart policy on docker run")
    36  	flags.StringVarP(&conf.GraphDriver, "storage-driver", "s", "", "Storage driver to use")
    37  	flags.IntVar(&conf.Mtu, "mtu", 0, "Set the containers network MTU")
    38  	flags.BoolVar(&conf.RawLogs, "raw-logs", false, "Full timestamps without ANSI coloring")
    39  	flags.Var(opts.NewListOptsRef(&conf.DNS, opts.ValidateIPAddress), "dns", "DNS server to use")
    40  	flags.Var(opts.NewNamedListOptsRef("dns-opts", &conf.DNSOptions, nil), "dns-opt", "DNS options to use")
    41  	flags.Var(opts.NewListOptsRef(&conf.DNSSearch, opts.ValidateDNSSearch), "dns-search", "DNS search domains to use")
    42  	flags.Var(opts.NewNamedListOptsRef("labels", &conf.Labels, opts.ValidateLabel), "label", "Set key=value labels to the daemon")
    43  	flags.StringVar(&conf.LogConfig.Type, "log-driver", "json-file", "Default driver for container logs")
    44  	flags.Var(opts.NewNamedMapOpts("log-opts", conf.LogConfig.Config, nil), "log-opt", "Default log driver options for containers")
    45  	flags.StringVar(&conf.ClusterAdvertise, "cluster-advertise", "", "Address or interface name to advertise")
    46  	flags.StringVar(&conf.ClusterStore, "cluster-store", "", "URL of the distributed storage backend")
    47  	flags.Var(opts.NewNamedMapOpts("cluster-store-opts", conf.ClusterOpts, nil), "cluster-store-opt", "Set cluster store options")
    48  	flags.StringVar(&conf.CorsHeaders, "api-cors-header", "", "Set CORS headers in the Engine API")
    49  	flags.IntVar(&maxConcurrentDownloads, "max-concurrent-downloads", config.DefaultMaxConcurrentDownloads, "Set the max concurrent downloads for each pull")
    50  	flags.IntVar(&maxConcurrentUploads, "max-concurrent-uploads", config.DefaultMaxConcurrentUploads, "Set the max concurrent uploads for each push")
    51  	flags.IntVar(&conf.ShutdownTimeout, "shutdown-timeout", defaultShutdownTimeout, "Set the default shutdown timeout")
    52  
    53  	flags.StringVar(&conf.SwarmDefaultAdvertiseAddr, "swarm-default-advertise-addr", "", "Set default address or interface for swarm advertised address")
    54  	flags.BoolVar(&conf.Experimental, "experimental", false, "Enable experimental features")
    55  
    56  	flags.StringVar(&conf.MetricsAddress, "metrics-addr", "", "Set default address and port to serve the metrics api on")
    57  
    58  	// "--deprecated-key-path" is to allow configuration of the key used
    59  	// for the daemon ID and the deprecated image signing. It was never
    60  	// exposed as a command line option but is added here to allow
    61  	// overriding the default path in configuration.
    62  	flags.Var(opts.NewQuotedString(&conf.TrustKeyPath), "deprecated-key-path", "Path to key file for ID and image signing")
    63  	flags.MarkHidden("deprecated-key-path")
    64  
    65  	conf.MaxConcurrentDownloads = &maxConcurrentDownloads
    66  	conf.MaxConcurrentUploads = &maxConcurrentUploads
    67  }