web-dev-qa-db-ja.com

DOCKER_TLS_VERIFY変数とDOCKER_CERT_PATH変数は何をしますか?

私はDockerを初めて使用し、Windows7でboot2dockerを使用しています。
spotify mavenプラグインを介してDockerビルドを構成しようとしたときに、以下の環境変数を設定するように求められました。

DOCKER_Host
DOCKER_CERT_PATH
DOCKER_TLS_VERIFY

構成は成功しましたが、DOCKER_TLS_VERIFY変数とDOCKER_CERT_PATH変数は何をするのかわかりませんか?

10
Aniketh

として READMEに記載

デフォルトでは、boot2dockerはTLSを有効にしてdockerを実行します。証明書を自動生成し、VM内の/home/docker/.dockerに保存します。
VMが開始されると、boot2docker upコマンドはそれらをホストマシンの~/.boot2docker/certsにコピーし、DOCKER_CERT_PATHおよびDOCKER_TLS_VERIFY環境変数の正しい値を出力します。

eval "$(boot2docker shellinit)" will also set them correctly.

セキュリティ上の理由から、暗号化されていないDockerソケットでBoot2Dockerを実行しないことを強くお勧めしますが、簡単に切り替えることができないツールがある場合は、DOCKER_TLS=noファイルに/var/lib/boot2docker/profileを追加することで無効にできます。

Boot2docker ipが変更される可能性がある、より動的な環境では、 issue 944 を参照してください。

3
VonC

今のところ、以下のコメントを確認してください。私はGo開発者ではありませんが、その使用法は理解しています。質素すぎるので後で編集します。

から https://github.com/docker/docker/blob/3ea762b9f6ba256cf51bd2c35988f0c48bccf0b0/client/client.go

[...]
// Use DOCKER_Host to set the url to the docker server.
// Use DOCKER_API_VERSION to set the version of the API to reach, leave empty for latest.
// Use DOCKER_CERT_PATH to load the tls certificates from.
// Use DOCKER_TLS_VERIFY to enable or disable TLS verification, off by default.
func NewEnvClient() (*Client, error) {
    var client *http.Client
    if dockerCertPath := os.Getenv("DOCKER_CERT_PATH"); dockerCertPath != "" {
        options := tlsconfig.Options{
            CAFile:             filepath.Join(dockerCertPath, "ca.pem"),
            CertFile:           filepath.Join(dockerCertPath, "cert.pem"),
            KeyFile:            filepath.Join(dockerCertPath, "key.pem"),
            InsecureSkipVerify: os.Getenv("DOCKER_TLS_VERIFY") == "",
[...]
0
dim