diff --git a/api/client/cli.go b/api/client/cli.go index 74e645171a..a477d0b3a9 100644 --- a/api/client/cli.go +++ b/api/client/cli.go @@ -138,14 +138,18 @@ func NewDockerCli(in io.ReadCloser, out, err io.Writer, key libtrust.PrivateKey, // The transport is created here for reuse during the client session tr := &http.Transport{ TLSClientConfig: tlsConfig, - Dial: func(dial_network, dial_addr string) (net.Conn, error) { - // Why 32? See issue 8035 - return net.DialTimeout(proto, addr, 32*time.Second) - }, } + + // Why 32? See issue 8035 + timeout := 32 * time.Second if proto == "unix" { // no need in compressing for local communications tr.DisableCompression = true + tr.Dial = func(_, _ string) (net.Conn, error) { + return net.DialTimeout(proto, addr, timeout) + } + } else { + tr.Dial = (&net.Dialer{Timeout: timeout}).Dial } return &DockerCli{