1

我玩过https://labs.play-with-docker.com/

我选择了以下模板3 Managers and 2 Workers
在此处输入图像描述

我去manager1创造了一个秘密:

echo "mydatabasepassword" | docker secret create db_pass -

我检查了,秘密是存在的:
在此处输入图像描述

我想检查秘密文件夹,但它不存在:
在此处输入图像描述

我也试过这样:
在此处输入图像描述 知道它在哪里吗?

按照 Bret Fisher 的回答,这里有一个例子:
在此处输入图像描述

*我只能从经理领导那里得到容器的名称。

4

2 回答 2

4

机密存储在加密的 raft db 中的管理器主机上,因此您无法从主机查看它们。要在容器中查看它们,您需要在 docker service create 上分配它们,因此:

docker service create --secret=db_pass --name example nginx

然后从分配了容器的节点中,您可以看到容器中的文本文件(容器名称会有所不同):

docker exec example.1.m1c4bvubej64xc1csclnq7y3r cat /run/secrets/db_pass
于 2018-03-05T16:34:30.190 回答
1

根据文档

当您授予新创建或正在运行的服务对密钥的访问权限时,解密的密钥将挂载到内存文件系统中的容器中。容器内挂载点的位置在 Linux 容器中默认为 /run/secrets/

这些秘密存储在 swarm 的加密 Raft 日志中。

(要了解有关加密 Raft 日志的更多信息,请参阅此处。)

于 2018-03-04T22:22:17.660 回答