簡體   English   中英

如何在docker-machine中為機器設置TLS證書

[英]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.pemcert.pemkey.pem文件。 據我所知, config.json引用的其他文件可能不會被none驅動程序使用,因為regenerate-certs不是由none實現的。

您將需要復制ca.pem和key.pem文件

此時,您應該能夠運行docker-machine config remotedockereval "$(docker-machine env remotedocker)"並成功使用遠程守護程序。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM