将Docker的TLS选项设置为环境variables
我有使用证书运行的本地docker守护进程,并且可以使用非常长的命令来列出所有正在运行的容器
docker --tlsverify --tlscacert=/path/ca.cer --tlscert=/path/client.cert --tlskey=/path/client.key -H=localhost:2376 ps
但是,当我运行docker ps
我得到一个bad certificate
错误,因为上述命令的各种TLS选项不会传递给docker工人。 我已经花了许多小时通过docker网站,并找不到如何设置它们的任何选项。
我已经设置了DOCKER_CERT_PATH
,但似乎没有工作。
如果没有指定--tlscacert
,是否有DOCKER_CACERT
会读取的DOCKER_CACERT
环境variables?
这些选项应该在docker守护进程configuration文件中设置
"tls": true, "tlsverify": true, "tlscacert": "", "tlscert": "", "tlskey": "",
--config-file
选项允许您为守护进程设置JSON格式的任何configuration选项。
默认情况下,/etc/docker/daemon.json
尝试从Linux上的/etc/docker/daemon.json
加载configuration文件,在/etc/docker/daemon.json
上加载%programdata%\docker\config\daemon.json
。
在客户端,你需要设置docker-machine env
variables:
例如:
$ docker-machine.exe env --shell cmd dev set DOCKER_TLS_VERIFY=1 set DOCKER_HOST=tcp://192.168.99.101:2376 set DOCKER_CERT_PATH=C:\Users\captain\.docker\machine\machines\dev set DOCKER_MACHINE_NAME=dev # Run this command to configure your shell: copy and paste the above values into your command prompt
(用您的机器名称replacedev
)
确保DOCKER_CERT_PATH
引用包含您的证书的文件夹 。