dotcloud/docker

View on GitHub
client/envvars.go

Summary

Maintainability
A
0 mins
Test Coverage
package client // import "github.com/docker/docker/client"

const (
    // EnvOverrideHost is the name of the environment variable that can be used
    // to override the default host to connect to (DefaultDockerHost).
    //
    // This env-var is read by FromEnv and WithHostFromEnv and when set to a
    // non-empty value, takes precedence over the default host (which is platform
    // specific), or any host already set.
    EnvOverrideHost = "DOCKER_HOST"

    // EnvOverrideAPIVersion is the name of the environment variable that can
    // be used to override the API version to use. Value should be
    // formatted as MAJOR.MINOR, for example, "1.19".
    //
    // This env-var is read by FromEnv and WithVersionFromEnv and when set to a
    // non-empty value, takes precedence over API version negotiation.
    //
    // This environment variable should be used for debugging purposes only, as
    // it can set the client to use an incompatible (or invalid) API version.
    EnvOverrideAPIVersion = "DOCKER_API_VERSION"

    // EnvOverrideCertPath is the name of the environment variable that can be
    // used to specify the directory from which to load the TLS certificates
    // (ca.pem, cert.pem, key.pem) from. These certificates are used to configure
    // the Client for a TCP connection protected by TLS client authentication.
    //
    // TLS certificate verification is enabled by default if the Client is configured
    // to use a TLS connection. Refer to EnvTLSVerify below to learn how to
    // disable verification for testing purposes.
    //
    // WARNING: Access to the remote API is equivalent to root access to the
    // host where the daemon runs. Do not expose the API without protection,
    // and only if needed. Make sure you are familiar with the "daemon attack
    // surface" (https://docs.docker.com/go/attack-surface/).
    //
    // For local access to the API, it is recommended to connect with the daemon
    // using the default local socket connection (on Linux), or the named pipe
    // (on Windows).
    //
    // If you need to access the API of a remote daemon, consider using an SSH
    // (ssh://) connection, which is easier to set up, and requires no additional
    // configuration if the host is accessible using ssh.
    //
    // If you cannot use the alternatives above, and you must expose the API over
    // a TCP connection, refer to https://docs.docker.com/engine/security/protect-access/
    // to learn how to configure the daemon and client to use a TCP connection
    // with TLS client authentication. Make sure you know the differences between
    // a regular TLS connection and a TLS connection protected by TLS client
    // authentication, and verify that the API cannot be accessed by other clients.
    EnvOverrideCertPath = "DOCKER_CERT_PATH"

    // EnvTLSVerify is the name of the environment variable that can be used to
    // enable or disable TLS certificate verification. When set to a non-empty
    // value, TLS certificate verification is enabled, and the client is configured
    // to use a TLS connection, using certificates from the default directories
    // (within `~/.docker`); refer to EnvOverrideCertPath above for additional
    // details.
    //
    // WARNING: Access to the remote API is equivalent to root access to the
    // host where the daemon runs. Do not expose the API without protection,
    // and only if needed. Make sure you are familiar with the "daemon attack
    // surface" (https://docs.docker.com/go/attack-surface/).
    //
    // Before setting up your client and daemon to use a TCP connection with TLS
    // client authentication, consider using one of the alternatives mentioned
    // in EnvOverrideCertPath above.
    //
    // Disabling TLS certificate verification (for testing purposes)
    //
    // TLS certificate verification is enabled by default if the Client is configured
    // to use a TLS connection, and it is highly recommended to keep verification
    // enabled to prevent machine-in-the-middle attacks. Refer to the documentation
    // at https://docs.docker.com/engine/security/protect-access/ and pages linked
    // from that page to learn how to configure the daemon and client to use a
    // TCP connection with TLS client authentication enabled.
    //
    // Set the "DOCKER_TLS_VERIFY" environment to an empty string ("") to
    // disable TLS certificate verification. Disabling verification is insecure,
    // so should only be done for testing purposes. From the Go documentation
    // (https://pkg.go.dev/crypto/tls#Config):
    //
    // InsecureSkipVerify controls whether a client verifies the server's
    // certificate chain and host name. If InsecureSkipVerify is true, crypto/tls
    // accepts any certificate presented by the server and any host name in that
    // certificate. In this mode, TLS is susceptible to machine-in-the-middle
    // attacks unless custom verification is used. This should be used only for
    // testing or in combination with VerifyConnection or VerifyPeerCertificate.
    EnvTLSVerify = "DOCKER_TLS_VERIFY"
)