如何用docker-compose v3.1来管理秘密值
简介
作为开发人员,我们经常需要在我们的应用程序中加入私人数据,包括密码、API密钥和数据库凭证。将这些变量硬编码到我们的代码或配置文件中不仅不安全,而且在必要时管理和改变它们也是一种挑战。
使用环境变量,让我们把敏感数据与我们的代码库和配置文件分开,是管理秘密值的一种方法。在这篇文章中,我们将看看如何使用docker-compose v3.1维护秘密值,并将其作为环境变量注入我们的容器中。
先决条件
要继续学习本教程,你需要在你的机器上安装Docker和docker-compose v3.1。
方法
我们可以用几种方法来管理docker-compose v3.1的秘密值。
其中一些方法包括以下几点
- 使用环境变量
-
使用.env文件
现在让我们结合实例来详细讨论这些问题。
使用环境变量
用docker-compose v3.1来管理秘密值的一种方法是使用环境变量。环境变量是在运行时传递给容器的键-值对。它们可以在docker-compose文件中设置,也可以从主机上传入。
示例 1
要在docker-compose文件中设置一个环境变量,我们可以使用我们要设置变量的服务下的环境键。
第1步 – 在代码编辑器中导航到你的项目目录。
对于使用你的终端导航,使用以下命令—-。
第2步 – 在你的docker-compose.yml文件中,指定我们要设置变量的服务下的环境键。
第3步 – 在同一目录下添加相应的名为 “Dockerfile “的Docker文件,不包含以下内容—-。
第4步 – 现在通过在终端运行以下命令来运行和构建这个docker-compose —
输出
使用.env文件
用docker-compose v3.1来管理秘密值的另一种方法是使用.env文件。.env文件是一个包含键值对列表的文件,在运行时传递给容器。docker-compose文件和.env文件必须都在同一个目录下。
第1步 – 在代码编辑器中导航到你的项目目录。
第2步 – 在你的项目目录下创建一个名为.env的文件。
第3步 – 为了在docker-compose v3.1中使用.env文件,我们可以使用api key命令在.env文件中设置环境变量,像这样 –
第4步 – 使用以下命令在终端运行.env文件。
输出
第5步 – 在同一目录下创建一个docker-compose.yml文件,然后使用${VAR_NAME}语法引用这些环境变量–
第6步 – 在终端使用以下命令来输出docker-compose.yml文件的内容 –
输出
第7步 – 在终端中使用终端运行这个文件——。
输出
结论
在这篇文章中,我们已经探讨了用docker-compose v3.1管理秘密值的几种方法。我们可以使用环境变量、.env文件和Docker秘密,以安全的方式存储和管理敏感数据。我们还看了各种例子来实现同样的功能。通过使用这些方法,我们可以避免在代码库中以纯文本形式存储秘密值,并减少安全漏洞的风险。