【发布时间】:2020-03-06 19:34:48
【问题描述】:
我正在使用单个容器 docker 映像。我想在不使用 compose 的情况下将我的 db 密码存储为秘密(现在有问题和 Gradle)。我以为即使没有 compose,我仍然可以使用秘密,但当我尝试时,我得到......
$ echo "helloSecret" | docker secret create helloS -
来自守护进程的错误响应:此节点不是集群管理器。使用“docker swarm init”或“docker swarm join”将此节点连接到swarm,然后重试。
为什么我需要使用 swarm 模式才能使用秘密?为什么我不能在没有集群的情况下使用它们?
【问题讨论】:
-
它们存储在 raft 日志中(特定于 Swarm)。不过,您不需要使用 compose(可以通过 cli 创建所有内容)。仅使用单个节点 Swarm 并没有真正的缺点。
-
@johnharris85 这似乎违反直觉,但我对 docker 还是很陌生。我意识到拥有一个节点群可能不会“伤害”我只是认为它会增加至少一点开销,我不确定为什么这是一个秘密。不过,我会看一下木筏日志,也许这会有所启发。谢谢!
-
但是为什么你需要使用秘密呢?是因为你在生产和开发中工作的代码是一样的吗?
-
最终是的,我想成功,所以我不必将 EnvVars 存储在 docker 文件中。
标签: docker docker-swarm docker-secrets