config_common_unix.go 2.3 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364
  1. // +build linux freebsd
  2. package main
  3. import (
  4. "path/filepath"
  5. "github.com/docker/docker/api/types"
  6. "github.com/docker/docker/daemon/config"
  7. "github.com/docker/docker/opts"
  8. "github.com/docker/docker/pkg/homedir"
  9. "github.com/spf13/pflag"
  10. )
  11. func getDefaultPidFile() (string, error) {
  12. if !honorXDG {
  13. return "/var/run/docker.pid", nil
  14. }
  15. runtimeDir, err := homedir.GetRuntimeDir()
  16. if err != nil {
  17. return "", err
  18. }
  19. return filepath.Join(runtimeDir, "docker.pid"), nil
  20. }
  21. func getDefaultDataRoot() (string, error) {
  22. if !honorXDG {
  23. return "/var/lib/docker", nil
  24. }
  25. dataHome, err := homedir.GetDataHome()
  26. if err != nil {
  27. return "", err
  28. }
  29. return filepath.Join(dataHome, "docker"), nil
  30. }
  31. func getDefaultExecRoot() (string, error) {
  32. if !honorXDG {
  33. return "/var/run/docker", nil
  34. }
  35. runtimeDir, err := homedir.GetRuntimeDir()
  36. if err != nil {
  37. return "", err
  38. }
  39. return filepath.Join(runtimeDir, "docker"), nil
  40. }
  41. // installUnixConfigFlags adds command-line options to the top-level flag parser for
  42. // the current process that are common across Unix platforms.
  43. func installUnixConfigFlags(conf *config.Config, flags *pflag.FlagSet) {
  44. conf.Runtimes = make(map[string]types.Runtime)
  45. flags.StringVarP(&conf.SocketGroup, "group", "G", "docker", "Group for the unix socket")
  46. flags.StringVar(&conf.BridgeConfig.IP, "bip", "", "Specify network bridge IP")
  47. flags.StringVarP(&conf.BridgeConfig.Iface, "bridge", "b", "", "Attach containers to a network bridge")
  48. flags.StringVar(&conf.BridgeConfig.FixedCIDR, "fixed-cidr", "", "IPv4 subnet for fixed IPs")
  49. flags.Var(opts.NewIPOpt(&conf.BridgeConfig.DefaultGatewayIPv4, ""), "default-gateway", "Container default gateway IPv4 address")
  50. flags.Var(opts.NewIPOpt(&conf.BridgeConfig.DefaultGatewayIPv6, ""), "default-gateway-v6", "Container default gateway IPv6 address")
  51. flags.BoolVar(&conf.BridgeConfig.InterContainerCommunication, "icc", true, "Enable inter-container communication")
  52. flags.Var(opts.NewIPOpt(&conf.BridgeConfig.DefaultIP, "0.0.0.0"), "ip", "Default IP when binding container ports")
  53. flags.Var(opts.NewNamedRuntimeOpt("runtimes", &conf.Runtimes, config.StockRuntimeName), "add-runtime", "Register an additional OCI compatible runtime")
  54. flags.StringVar(&conf.DefaultRuntime, "default-runtime", config.StockRuntimeName, "Default OCI runtime for containers")
  55. }