dan*_*man 5 docker consul hashicorp-vault
我使用 Vault Docker 镜像和 Consul Docker 镜像作为它的存储。我的问题是,如果假设 Consul 容器会崩溃,我将尝试运行一个新容器,我需要重新初始化保管库,Consul 保存的数据会丢失。
任何人都知道我需要做什么才能使数据持久化?
运行 Consul 镜像的命令:
docker run -d -p 8400:8400 -p 8500:8500 -p 8600:53/udp -it consul
Run Code Online (Sandbox Code Playgroud)
运行 Vault 映像的命令:
docker run -d -p 8200:8200 -v /root/vault:/vault --cap-add=IPC_LOCK vault server
Run Code Online (Sandbox Code Playgroud)
以及保管库配置文件内容:
{
"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,
}
Run Code Online (Sandbox Code Playgroud)
最终我做了以下事情:
为 consul 创建持久卷并将其挂载到容器上:
docker volume create consul-volume --label description='Persistent data for consul'
Run Code Online (Sandbox Code Playgroud)
为 consul 创建 local.json 配置文件:
{
"log_level": "DEBUG",
"server": true,
"ui": true,
"bootstrap": true,
"client_addr":"0.0.0.0"
}
Run Code Online (Sandbox Code Playgroud)
运行领事容器:
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
Run Code Online (Sandbox Code Playgroud)
运行保管库容器:
docker run -d -p 8200:8200 -v /root/vault:/vault --cap-add=IPC_LOCK vault server
Run Code Online (Sandbox Code Playgroud)
并且consul容器中的数据是持久化的。
| 归档时间: |
|
| 查看次数: |
2778 次 |
| 最近记录: |