我已经使用证书运行了本地docker守护程序,我可以使用非常长的winded命令列出所有正在运行的容器,如
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
,但它似乎无法正常工作
如果未指定DOCKER_CACERT
,是否存在docker会读取的--tlscacert
环境变量?
答案 0 :(得分:4)
"tls": true,
"tlsverify": true,
"tlscacert": "",
"tlscert": "",
"tlskey": "",
--config-file
选项允许您以JSON格式为守护程序设置任何配置选项 默认情况下,docker尝试从Linux上的/etc/docker/daemon.json
和Windows上的%programdata%\docker\config\daemon.json
加载配置文件。
在客户端,您需要设置docker-machine env
变量:
例如:
$ 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
(将dev
替换为您的机器名称)
确保DOCKER_CERT_PATH
引用包含证书的文件夹。