config_common_unix.go 2.3 KB

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