学习优先级:★★★★☆
易用性:★★★☆☆
在 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 等环境进行管理,尤其是当需要更复杂的部署时。