获取 consul Docker 映像以与 Vault 数据保持一致
问题:获取 consul Docker 映像以与 Vault 数据保持一致 我正在使用带有 Consul Docker 映像的 Vault Docker 映像作为其存储。我的问题是,如果 Consul 容器出现故障,我将尝试运行一个新容器,我需要重新初始化 vault,Consul 保存的数据会丢失。 任何人都知道我需要做什么才能使数据持久化? 运行 Consul 镜像的命令: docker ru
·
问题:获取 consul Docker 映像以与 Vault 数据保持一致
我正在使用带有 Consul Docker 映像的 Vault Docker 映像作为其存储。我的问题是,如果 Consul 容器出现故障,我将尝试运行一个新容器,我需要重新初始化 vault,Consul 保存的数据会丢失。
任何人都知道我需要做什么才能使数据持久化?
运行 Consul 镜像的命令:
docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp -it consul
运行 Vault 映像的命令:
docker run -d -p 8200:8200 -v /root/vault:/vault --cap-add=IPC_LOCK vault server
以及保管库配置文件内容:
{
"listener": [{
"tcp": {
"address": "0.0.0.0:8200",
"tls_disable" : 1
}
}],
"storage" :{
"consul" : {
"address" :"172.17.0.4:8500"
"path" :"vault/"
}
}
"max_lease_ttl": "10h",
"default_lease_ttl": "10h",
"ui": true,
}
解答
最终我做了以下事情:
为 consul 创建持久卷并将其挂载到容器上:
docker volume create consul-volume --label description='Persistent data for consul'
为 consul 创建 local.json 配置文件:
{
"log_level": "DEBUG",
"server": true,
"ui": true,
"bootstrap": true,
"client_addr":"0.0.0.0"
}
运行领事容器:
docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp --net mynet -v /root/vault/consul:/consul --mount type=volume,source=consul-volume,target=/consul/data --name consul -it consul agent
运行保管库容器:
docker run -d -p 8200:8200 -v /root/vault:/vault --cap-add=IPC_LOCK vault server
并且 consul 容器中的数据是持久化的。
更多推荐
已为社区贡献35539条内容
所有评论(0)