[英]How to set TLS Certificates for a machine in docker-machine
我想做的事:
我已經在TLS驗證設置為true的一台機器上運行dockerd。 我想將此主機添加為docker-machine
我做了什么:
我使用以下命令啟動dockerd:
$ sudo dockerd -D --tls=true --tlscert=cert.pem --tlskey=key.pem -H tcp://172.19.48.247:2376
在第二台計算機上,我獲取了以下變量:
export DOCKER_HOST=tcp://172.19.48.247:2376
export DOCKER_TLS_VERIFY=1
export DOCKER_CERT_PATH=/path/to/ssl
並成功運行docker命令:
$ docker run busybox echo hello
hello
然后我添加了這個主機docker-machine:
docker-machine create --driver none --url=tcp://172.19.48.247:2376 dockerhost
我要去哪里了:
我現在收到x509: certificate signed by unknown authority
錯誤。
$ docker-machine ls
NAME ACTIVE DRIVER STATE URL SWARM DOCKER ERRORS Unknown
dockerhost - none Running tcp://172.19.48.247:2376 Unknown Unable to query docker version: Get https://172.19.48.247:2376/v1.15/version: x509: certificate signed by unknown authority
我嘗試使用docker-machine config
但這不起作用:
$ docker-machine config dockerhost --tlsverify --tlscacert=ca.pem --tlscert=cert.pem --tlskey=key.pem -H tcp://172.19.48.247:2376
Incorrect Usage.
Usage: docker-machine config [OPTIONS] [arg...]
Print the connection config for machine
Description:
Argument is a machine name.
Options:
--swarm Display the Swarm config instead of the Docker daemon
flag provided but not defined: -tlsverify
默認情況下,將無驅動程序配置為使用~/.docker/machine
的TLS證書。 這不一定是必需的,因為如果遠程Docker主機具有由在該位置獲得的ca.pem以外的其他人簽名的證書,則將遇到錯誤。
我發現一個解決辦法的引用在這里我測試,它肯定似乎工作。 這是我遵循的步驟:
docker-machine create -d none --url tcp://remotedocker.example.com:2376 remotedocker
這將創建以下目錄:
~/.docker/machine/machines/remotedocker
該目錄中有一個名為config.json
的文件。 編輯該文件,然后將“ .docker / machine / certs”的每個實例更改為“ .docker / machine / machines / remotedocker”
通常,當您遠程訪問Docker時,它只需要訪問ca.pem
, cert.pem
和key.pem
文件。 據我所知, config.json
引用的其他文件可能不會被none
驅動程序使用,因為regenerate-certs
不是由none
實現的。
您將需要復制ca.pem和key.pem文件
此時,您應該能夠運行docker-machine config remotedocker
或eval "$(docker-machine env remotedocker)"
並成功使用遠程守護程序。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.