moby/cmd/dockerd
Sebastiaan van Stijn 84036d3e18
daemon/config: change DNSConfig.DNS to a []net.IP
Use a strong type for the DNS IP-addresses so that we can use flags.IPSliceVar,
instead of implementing our own option-type and validation.

Behavior should be the same, although error-messages have slightly changed:

Before this patch:

    dockerd --dns 1.1.1.1oooo --validate
    Status: invalid argument "1.1.1.1oooo" for "--dns" flag: 1.1.1.1oooo is not an ip address
    See 'dockerd --help'., Code: 125

    cat /etc/docker/daemon.json
    {"dns": ["1.1.1.1"]}

    dockerd --dns 2.2.2.2 --validate
    unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: dns: (from flag: [2.2.2.2], from file: [1.1.1.1])

    cat /etc/docker/daemon.json
    {"dns": ["1.1.1.1oooo"]}

    dockerd --validate
    unable to configure the Docker daemon with file /etc/docker/daemon.json: merged configuration validation from file and command line flags failed: 1.1.1.1ooooo is not an ip address

With this patch:

    dockerd --dns 1.1.1.1oooo --validate
    Status: invalid argument "1.1.1.1oooo" for "--dns" flag: invalid string being converted to IP address: 1.1.1.1oooo
    See 'dockerd --help'., Code: 125

    cat /etc/docker/daemon.json
    {"dns": ["1.1.1.1"]}

    dockerd --dns 2.2.2.2 --validate
    unable to configure the Docker daemon with file /etc/docker/daemon.json: the following directives are specified both as a flag and in the configuration file: dns: (from flag: [2.2.2.2], from file: [1.1.1.1])

    cat /etc/docker/daemon.json
    {"dns": ["1.1.1.1oooo"]}

    dockerd --validate
    unable to configure the Docker daemon with file /etc/docker/daemon.json: invalid IP address: 1.1.1.1oooo

Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
2023-11-13 12:22:51 +01:00
..
trap migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
cobra.go cli: move cobra customizations into cmd/dockerd 2022-12-14 11:37:51 +01:00
config.go daemon/config: change DNSConfig.DNS to a []net.IP 2023-11-13 12:22:51 +01:00
config_unix.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
config_unix_test.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
config_windows.go daemon/config: New(): initialize config with platform-specific defaults 2022-08-17 08:54:32 +02:00
daemon.go Update container-device-interface to v0.6.2 2023-11-04 01:00:19 +01:00
daemon_freebsd.go daemon: move check for CPU-realtime daemon options 2022-03-03 19:50:27 +01:00
daemon_linux.go vendor: github.com/containerd/cgroups/v3 v3.0.1 2023-03-08 20:15:17 +09:00
daemon_linux_test.go cmd/dockerd: gracefully shut down the API server 2023-04-26 10:57:28 -04:00
daemon_test.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
daemon_unix.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
daemon_unix_test.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
daemon_windows.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
docker.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
docker_unix.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
docker_windows.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
error.go cli: move cobra customizations into cmd/dockerd 2022-12-14 11:37:51 +01:00
genwinres_windows.go use go-winres for cross to create Windows resources 2022-04-14 19:52:35 +02:00
grpclog.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
main_linux_test.go Fix listener parsering regression when no addr set 2023-03-09 23:53:05 +00:00
metrics.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
options.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00
options_test.go cli: remove cli/config package, integrate into cmd/dockerd 2022-12-14 12:52:40 +01:00
README.md Fix readme doc for dockerd 2016-09-01 14:47:51 +08:00
required.go cli: move cobra customizations into cmd/dockerd 2022-12-14 11:37:51 +01:00
service_unsupported.go remove pre-go1.17 build-tags 2023-05-19 20:38:51 +02:00
service_windows.go migrate to github.com/containerd/log v0.1.0 2023-10-11 17:52:23 +02:00

docker.go contains Docker daemon's main function.

This file provides first line CLI argument parsing and environment variable setting.