我为什么要使用 Docker 个密文?

Why should I use Docker Secrets?

在过去的几个月里,我通过将它们放在 ENV 变量中来管理 docker 容器的密码。

示例:

web:
  environment:
    - PASSWORD=123456

然后我遇到了 Docker 个秘密。所以我的问题是:

  1. 我应该使用它们的原因是什么?
  2. 它们更安全吗?怎么样?
  3. 能否提供一个简单的例子来说明它们的功能?

基本的docker inspect(除其他外)会显示所有环境变量,所以这根本不安全。

你也可以看看

键神

square.github.io/keywhiz

或金库

hashicorp.com/blog/vault.html

这取决于用例。

如果您 运行 自己机器上的一个应用程序仅访问一个机密,则不需要 docker 个机密。

如果您的 运行 生产环境中有数十台机器,其中有许多集群服务都需要彼此的秘密,那么您确实需要秘密管理。

除了安全问题之外,使用标准化的方式来访问、创建和删除您的机密显然更容易。

发件人:https://github.com/moby/moby/issues/13490

  • 环境变量。 不鼓励使用环境变量,因为它们是:
    • 容器中的任何进程都可以访问,因此很容易 "leaked"
    • 保留在图像的中间层中,并在 docker inspect
    • 中可见
    • 与链接到容器的任何容器共享