Docker Secrets是Docker提供的一种安全机制,用于存储和管理敏感数据,如密码、API密钥等,通过使用Secrets,我们可以将这些数据与应用程序代码分离,从而提高安全性和可维护性。根据官网介绍Secret是1.25之后引入的,它运行在swarm上的命令。使用Secrets需要执行Swarm初始化操作。

docker swarm init 

会通知 Docker 来初始化一个新的 Swarm,并将自身设置为第一个管理节点,同时也会使该节点开Swarm 模式。

secret相关命令

Command

Description

docker secret create

Create a secret from a file or STDIN as content

docker secret inspect

Display detailed information on one or more secrets

docker secret ls

List secrets

docker secret rm

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

Logo

腾讯云面向开发者汇聚海量精品云计算使用和开发经验,营造开放的云计算技术生态圈。

更多推荐