学习优先级:★★★★☆

易用性:★★★☆☆

在 Docker Compose 中,可以安全地管理和传递敏感数据,如密码、API 密钥或配置数据。这些敏感数据通过“机密信息”(Secrets)进行管理,机密信息被单独存储,并且仅由需要的服务访问。

Docker Compose 提供了机密信息功能,用于安全地管理敏感信息。这些机密信息会被传递到容器中,而不会暴露在源代码中。以下是一个配置和使用机密信息的示例。

示例代码

version: '3.8'

services:
  web:
    image: nginx
    ports:
      - "80:80"
    secrets:
      - db_password

secrets:
  db_password:
    file: ./secrets/db_password.txt

secrets/db_password.txt 文件的内容:

my_secure_password

执行结果

启动 NGINX 容器时,机密信息 db_password 会被安全地传递到容器中,而不会在配置中暴露。它将在容器环境中可用,但不会直接出现在镜像中。

Docker Compose 使用机密信息功能安全地存储敏感信息。这些信息被存储在宿主机文件系统中的文件(如文本文件)中,而不是直接存储在 Compose 文件中。使用 version: '3.8' 格式可以启用机密信息功能。只有授权的服务才能访问这些机密信息。

补充说明

在 Docker Compose 中使用机密信息特别适合在生产环境中部署应用。机密信息不应直接存储在代码或版本控制系统(如 Git)中。相反,应使用 Docker Swarm 或 Kubernetes 等环境进行管理,尤其是当需要更复杂的部署时。