diff --git a/daemon_unix.go b/daemon_unix.go index 7a27518636..d515b82914 100644 --- a/daemon_unix.go +++ b/daemon_unix.go @@ -11,8 +11,14 @@ import ( // CmdDaemon execs dockerd with the same flags func (p DaemonProxy) CmdDaemon(args ...string) error { - // Use os.Args[1:] so that "global" args are passed to dockerd - args = stripDaemonArg(os.Args[1:]) + // Special case for handling `docker help daemon`. When pkg/mflag is removed + // we can support this on the daemon side, but that is not possible with + // pkg/mflag because it uses os.Exit(1) instead of returning an error on + // unexpected args. + if len(args) == 0 || args[0] != "--help" { + // Use os.Args[1:] so that "global" args are passed to dockerd + args = stripDaemonArg(os.Args[1:]) + } binaryPath, err := findDaemonBinary() if err != nil {