无法找到码头工人的秘密'文件夹(' / run / secrets')

时间:2018-03-04 16:51:11

标签: docker docker-swarm docker-secrets

我和https://labs.play-with-docker.com/一起玩。

我选择了3 Managers and 2 Workers的模板:
enter image description here

我去了manager1并创建了一个秘密:

echo "mydatabasepassword" | docker secret create db_pass -

我检查过,秘密存在:
enter image description here

我想检查一下秘密文件夹,但它不存在:
enter image description here

我也尝试过这样:
enter image description here 知道它在哪里?

按照布雷特·费舍尔的回答,这是一个例子:
enter image description here

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

2 个答案:

答案 0 :(得分:3)

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

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

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

docker exec example.1.m1c4bvubej64xc1csclnq7y3r cat /run/secrets/db_pass

答案 1 :(得分:1)

根据docs

  

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

     

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

(要了解有关加密筏日志的详情,请参阅here。)