diff --git a/cli/command/registry/login.go b/cli/command/registry/login.go index f43db587dbaa..353ac4eeec2c 100644 --- a/cli/command/registry/login.go +++ b/cli/command/registry/login.go @@ -4,6 +4,7 @@ import ( "context" "fmt" "io" + "net/url" "strings" "github.com/docker/cli/cli" @@ -97,6 +98,16 @@ func verifyloginOptions(dockerCli command.Cli, opts *loginOptions) error { opts.password = strings.TrimSuffix(string(contents), "\n") opts.password = strings.TrimSuffix(opts.password, "\r") } + + if opts.serverAddress != "" { + u, err := url.Parse(opts.serverAddress) + if err != nil { + return errors.Errorf("Invalid server address: %s", opts.serverAddress) + } + if u.Host == "" { + return errors.Errorf("Server address must include a hostname: %s", opts.serverAddress) + } + } return nil }