当前我正在使用docker-compose文件来设置我的dev/prod环境。我使用环境变量来存储秘密,数据库凭证等。经过一番搜索,我发现可以使用保险柜来保护凭证。我尝试了几个有关Vault的基本示例,但仍然不知道如何将Vault与docker-compose文件一起使用。有人能指点我一个正确的方法吗?如果Vault不是docker-compose的好解决方案,我可以使用什么机制来保护证书,而不是将它们作为纯文本存储在环境中。将保管库与Docker撰写文件结合使用
3
A
回答
2
这是我当前在dev中使用Vault的docker-compose配置,但我在生产中使用专用服务器(不是Docker)。
# docker_compose.yml
version: '2'
services:
myvault:
image: vault
container_name: myvault
ports:
- "127.0.0.1:8200:8200"
volumes:
- ./file:/vault/file:rw
- ./config:/vault/config:rw
cap_add:
- IPC_LOCK
entrypoint: vault server -config=/vault/config/vault.json
体积坐骑确保金库配置被保存,如果你必须重建容器。
使用“文件”的后端,使为泊坞窗/ Git的这种设置可移植的,你还需要创建一个名为config
目录,并把这个文件进去,命名为vault.json
:
# config/vault.json
{
"backend": {"file": {"path": "/vault/file"}},
"listener": {"tcp": {"address": "0.0.0.0:8200", "tls_disable": 1}},
"default_lease_ttl": "168h",
"max_lease_ttl": "0h"
}
注意:
尽管ROOT_TOKEN
在此配置中是静态的(不会在容器构建之间更改),但为app_role
发出的任何生成的VAULT_TOKEN
将在每次必须解除保管库时被禁用。
我发现Vault有时会在容器重新启动时变为密封。
+0
顺便提一下,这种设置允许我将dev-vault状态存储到版本控制库(如Git),因此dev-vault实例可以轻松构建在其他开发人员的盒子上,而无需发出所有vault-config设置命令或将它们构建为脚本。 – StampyCode
相关问题
- 1. 指定env文件docker撰写使用
- 2. Docker撰写和卷与Apache
- 3. Docker撰写.env文件数组变量
- 4. Docker撰写共享文件夹
- 5. 无法使用Docker将mongodb与Rails容器连接撰写
- 6. docker撰写Django nginx
- 7. Mesos Slave - Docker撰写
- 8. 问题与文件撰写
- 9. 文件撰写与整个
- 10. 在Docker中使用非虚拟文件夹撰写为卷
- 11. Docker撰写与多阶段构建
- 12. Docker撰写正在生产
- 13. Docker撰写和主机名
- 14. Docker撰写依赖关系
- 15. Docker撰写和定制包
- 16. Docker ELK中的Logstash配置文件撰写文件
- 17. Docker撰写使用Docker运行删除容器开始
- 18. 在主机系统上使用运行容器的文件使用docker撰写
- 19. 在撰写文件
- 20. 无法使用Docker安装软件包撰写
- 21. 如何将几个数据库文件与numpy结合使用?
- 22. 基于Docker撰写单个图像撰写容器
- 23. 使用Javascript PHP文件撰写
- 24. 如何使卷永久与Docker撰写v2
- 25. 撰写与条件逻辑
- 26. 将GWT与数据库结合使用
- 27. 将TabLayout与BottomNavigationView结合使用 - support.design库
- 28. 撰写文件中的模板语法Docker
- 29. Docker撰写文件无效,不允许其他属性
- 30. Docker撰写Rails教程:这些文件去了哪里?
根据官方建议,Docker并不是用于在生产环境中部署Vault的最佳解决方案:https://www.vaultproject.io/guides/production.html –
说明:您是否在* docker-compose中设置保险库* - 或者您是否想要在Docker中设置一项服务 - 撰写*使用*保管库? – zaTricky