DockerSecret+DockerConfig介绍及使用

DockerSecret

查看官网介绍,Secret是daemon API 1.25之后引入的,它运行在swarm上的命令。

生产环境下,为了安全,我们不能把各项目的配置密码写入到配置文件。

我们可以引入docker的secret方式保护密码。

场景:

  • 用户名密码
  • SSH Key
  • TLS认证
  • 任何别人不想看到的数据

1、创建一个密码secret

2、用完就删

3、哪个服务想要使用只要暴露给他即可。

在这里插入图片描述

使用

echo "123456" |docker secret ceate xxx -

# 传递参数
[root@node111 ~]# docker service create --name mysql --secret mysql_pwd -e MYSQL_ROOT_PASSWORD_FILE=/run/secrets/mysql_pwd -p 3306:3306 mysql:5.7

# 写到yaml配置中
version: "3"
services:
  mysql:
    image: mysql:5.7
    ports:
      - 3306:3306
    secrets:
      - mysql_pwd
    enviroment:
      - MYSQL_ROOT_PASSWORD_FILE: /run/secrets/mysql_pwd


# 探究
[root@node111 ~]# docker ps
CONTAINER ID   IMAGE       COMMAND                   CREATED          STATUS          PORTS                 NAMES
11b0a5f6eb2c   mysql:5.7   "docker-entrypoint.s…"   24 seconds ago   Up 23 seconds   3306/tcp, 33060/tcp   mysql.1.xfll5c4mxp9d7h5uyz2u052pe
[root@node111 ~]# docker exec -it 11b0 /bin/bash
root@11b0a5f6eb2c:/# cd /run/secrets/
root@11b0a5f6eb2c:/run/secrets# ls
mysql_pwd
root@11b0a5f6eb2c:/run/secrets# cat mysql_pwd 
123456root@11b0a5f6eb2c:/run/secrets# exit
exit

原理:我们使用–secret mysql_pwd以后,secret密码文件就会被解码保存到容器内部的/run/secrets/secret名中。这样我们就可以在容器中任意使用。但是外部无感知。

不管怎么使用,secret最好提前创建好。到时候声明使用就行。其实是在内存中的。整个集群manager是利用raft同步的

DockerConfig

1、如何声明

docker config create [OPTIONS] CONFIG file|-

# 使用文件方式创建
docker config create redis.conf redis.conf
docker config ls

docker service create --config redis.conf --name redis redis

#config内容base64编码,是可以inspect出来的。
docker config inspect redis.conf

在线解码工具:https://c.runoob.com/front-end/693/


#secret文件是在容器中 /run/secrets/xxxx 暴露的
#config默认是在根目录暴露的。
docker ps
docker exec -it 容器id /bin/bash

2、如何使用

#指定位置
docker service create --name redis \
  --config source=redis-conf,target=/etc/redis/redis.conf,mode=0400 redis:3.0.6

#2、compose文件
version: "3"
services:
  mysql:
    image: redis
    ports:
      - 6379:6379
    config:
      - redis_conf
    enviroment:
      - MYSQL_ROOT_PASSWORD_FILE: /
  • 10
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值