github.com/docker/docker@v299999999.0.0-20200612211812-aaf470eca7b5+incompatible/daemon/config/config_common_unix.go (about)

     1  // +build linux freebsd
     2  
     3  package config // import "github.com/docker/docker/daemon/config"
     4  
     5  import (
     6  	"net"
     7  
     8  	"github.com/docker/docker/api/types"
     9  )
    10  
    11  // CommonUnixConfig defines configuration of a docker daemon that is
    12  // common across Unix platforms.
    13  type CommonUnixConfig struct {
    14  	Runtimes          map[string]types.Runtime `json:"runtimes,omitempty"`
    15  	DefaultRuntime    string                   `json:"default-runtime,omitempty"`
    16  	DefaultInitBinary string                   `json:"default-init,omitempty"`
    17  }
    18  
    19  type commonUnixBridgeConfig struct {
    20  	DefaultIP                   net.IP `json:"ip,omitempty"`
    21  	IP                          string `json:"bip,omitempty"`
    22  	DefaultGatewayIPv4          net.IP `json:"default-gateway,omitempty"`
    23  	DefaultGatewayIPv6          net.IP `json:"default-gateway-v6,omitempty"`
    24  	InterContainerCommunication bool   `json:"icc,omitempty"`
    25  }
    26  
    27  // GetRuntime returns the runtime path and arguments for a given
    28  // runtime name
    29  func (conf *Config) GetRuntime(name string) *types.Runtime {
    30  	conf.Lock()
    31  	defer conf.Unlock()
    32  	if rt, ok := conf.Runtimes[name]; ok {
    33  		return &rt
    34  	}
    35  	return nil
    36  }
    37  
    38  // GetDefaultRuntimeName returns the current default runtime
    39  func (conf *Config) GetDefaultRuntimeName() string {
    40  	conf.Lock()
    41  	rt := conf.DefaultRuntime
    42  	conf.Unlock()
    43  
    44  	return rt
    45  }
    46  
    47  // GetAllRuntimes returns a copy of the runtimes map
    48  func (conf *Config) GetAllRuntimes() map[string]types.Runtime {
    49  	conf.Lock()
    50  	rts := conf.Runtimes
    51  	conf.Unlock()
    52  	return rts
    53  }
    54  
    55  // GetExecRoot returns the user configured Exec-root
    56  func (conf *Config) GetExecRoot() string {
    57  	return conf.ExecRoot
    58  }
    59  
    60  // GetInitPath returns the configured docker-init path
    61  func (conf *Config) GetInitPath() string {
    62  	conf.Lock()
    63  	defer conf.Unlock()
    64  	if conf.InitPath != "" {
    65  		return conf.InitPath
    66  	}
    67  	if conf.DefaultInitBinary != "" {
    68  		return conf.DefaultInitBinary
    69  	}
    70  	return DefaultInitBinary
    71  }
    72  
    73  // GetResolvConf returns the appropriate resolv.conf
    74  // Check setupResolvConf on how this is selected
    75  func (conf *Config) GetResolvConf() string {
    76  	return conf.ResolvConf
    77  }