DockerSecret+DockerConfig介绍及使用
创始人
2024-12-28 20:38:42
0

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: / 

相关内容

热门资讯

android studio开... Kotlin 编程简介  |  Android Basics Compose - First And...
JavaWeb---HTML 一 HTML入门1.1 HTML&CSS&JavaScript的作用HTML 主要用于网页主体结构的...
Java二十三种设计模式-抽象... 抽象工厂模式:复杂系统的灵活构建者引言在软件开发中,抽象工厂模式是一种提...
微服务经纬:Eureka驱动的... 微服务经纬:Eureka驱动的分布式服务网格配置全解在微服务架构的宏伟蓝图中ÿ...
盘点一款!微扑克专用透明挂神器... 盘点一款!微扑克专用透明挂神器!微扑克专用辅助插件(2020已更新)(哔哩哔哩);一、是的,亲,有的...
three.js创建基础模型 场景是一个三维空间,是所有物品的容器。可以将其想象成一个空房间,里面可以...
Eureka是什么? Eureka是一个由Netflix开发并开源的服务发现框架,主要用于微服务架构中。在微...
Armv8-R内存模型详解 目录1.内存模型的必要性2.Armv8-R内存模型分类2.1 Normal memory2.2 De...
数据分析——Python网络爬... 爬虫库爬虫的步骤urllib库发送请求两种方法案例爬虫的步骤#mermaid-svg-h5azjtP...
基于springboot+vu... 开发语言:Java框架:springboot+uniappJDK...