Docker Secrets是Docker提供的一种安全机制,用于存储和管理敏感数据,如密码、API密钥等,通过使用Secrets,我们可以将这些数据与应用程序代码分离,从而提高安全性和可维护性。根据官网介绍Secret是1.25之后引入的,它运行在swarm上的命令。使用Secrets需要执行Swarm初始化操作。
docker swarm init
会通知 Docker 来初始化一个新的 Swarm,并将自身设置为第一个管理节点,同时也会使该节点开Swarm 模式。
secret相关命令
Command | Description |
Create a secret from a file or STDIN as content | |
Display detailed information on one or more secrets | |
List secrets | |
Remove one or more secrets |
由于我们使用docker-compose进行容器服务编排,所以需要选用支持Docker Secret的版本。docker-compose V2自v2.11.0+版本增加了对Docker Secret的支持,所以需要安装配置v2.11.0+以上的docker-compose。
本例以部署Postgresql数据为例
1.创建secret
echo "pgpwd" | docker secret create PGSQL_PWD -
2.查看secret
docker secret ls
3.编辑docker-compose.yml
version: '3.1'
services:
postgres-dev:
image: pgrouting/pgrouting:12-3.1-3.1.3
container_name: postgres-dev
restart: always
environment:
POSTGRES_USER: postgres
POSTGRES_PASSWORD: ${PGSQL_PWD}
ports:
- 5432:5432
volumes:
#将外边时间直接挂载到容器内部,权限只读
- /etc/localtime:/etc/localtime:ro
- ./data:/var/lib/postgresql/data
secrets:
- PGSQL_PWD
4.启动服务
docker-compose up -d