先验知识:
因此,我开始自己使用docker并将其安装在服务器上并启用了TLS。我遵循了本教程:https://docs.docker.com/engine/security/https/
本教程最终将为您提供6个文件:
这些文件的所有者为 root 。我复制了 ca.pem , cert.pem 和 key.pem ,并使用它们从本地portainer实例进行连接。 (实际上,我仅使用 cert.pem 和 key.pem ,因为我仅启用了客户端验证)
DOCKER主机:
{
"hosts": [
"unix:///var/run/docker.sock",
"tcp://0.0.0.0:2376"
],
"storage-driver": "overlay2",
"tls": true,
"tlscacert": "/etc/docker/certs/ca.pem",
"tlscert": "/etc/docker/certs/server-cert.pem",
"tlskey": "/etc/docker/certs/server-key.pem",
"tlsverify": true
}
我的问题:
我工作的公司为我安装了docker并启用了TLS,将所有 pem 文件放在我可以访问的目录中...问题是,我无法下载密钥。 pem ,因为所有者是root,而我将无法访问它。
我可以下载下一个文件:
对我来说这是可能的;可以仅访问那些文件,而不更改服务器上的任何内容,以通过TLS访问Docker?如何创建自己的 key.pem ,或者还有另一种方法?
很抱歉,如果这是常识,我只是在任何地方都找不到答案,或者我不知道自己到底在搜索什么...
答案 0 :(得分:2)
是的,您可以在该服务器上使用docker-daemon进行操作,而无需为该服务器创建另一个密钥和证书。
下载server-cert.pem
并在本地会话中导出以下环境变量:
DOCKER_TLS_VERIFY="1"
DOCKER_CERT_PATH="server-cert.pem"
DOCKER_HOST= "tcp://HOST:2376"
现在,您可以使用本地docker-client并在服务器上对docker-daemon进行操作。例如docker ps
应该显示在远程docker上运行的容器。
答案 1 :(得分:1)
私人密钥创建证书,您不能通过证书创建密钥。如果您的码头工人需要双向身份验证,则需要访问私钥。没有它就做不到。
您将需要以下文件(用于客户端-服务器身份验证):