diff --git a/cli/command/container/client_test.go b/cli/command/container/client_test.go index fe46be39329f..9b66f713cb59 100644 --- a/cli/command/container/client_test.go +++ b/cli/command/container/client_test.go @@ -232,3 +232,7 @@ func (f *fakeClient) ContainerPause(ctx context.Context, containerID string, opt return client.ContainerPauseResult{}, nil } + +func (*fakeClient) Ping(_ context.Context, _ client.PingOptions) (client.PingResult, error) { + return client.PingResult{}, nil +} diff --git a/cli/command/container/create.go b/cli/command/container/create.go index a58eeaa16d2e..36c6cfe6f8d3 100644 --- a/cli/command/container/create.go +++ b/cli/command/container/create.go @@ -112,7 +112,12 @@ func runCreate(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, } } copts.env = *opts.NewListOptsRef(&newEnv, nil) - containerCfg, err := parse(flags, copts, dockerCli.ServerInfo().OSType) + serverInfo, err := dockerCli.Client().Ping(ctx, client.PingOptions{}) + if err != nil { + return err + } + + containerCfg, err := parse(flags, copts, serverInfo.OSType) if err != nil { return cli.StatusError{ Status: withHelp(err, "create").Error(), diff --git a/cli/command/container/run.go b/cli/command/container/run.go index 2d75ec765b06..8eef49b1771d 100644 --- a/cli/command/container/run.go +++ b/cli/command/container/run.go @@ -101,7 +101,12 @@ func runRun(ctx context.Context, dockerCli command.Cli, flags *pflag.FlagSet, ro } } copts.env = *opts.NewListOptsRef(&newEnv, nil) - containerCfg, err := parse(flags, copts, dockerCli.ServerInfo().OSType) + serverInfo, err := dockerCli.Client().Ping(ctx, client.PingOptions{}) + if err != nil { + return err + } + + containerCfg, err := parse(flags, copts, serverInfo.OSType) // just in case the parse does not exit if err != nil { return cli.StatusError{