gpt4 book ai didi

docker - 获取 consul Docker 图像以与 Vault 数据保持一致

转载 作者:行者123 更新时间:2023-12-02 17:58:57 25 4
gpt4 key购买 nike

我正在使用带有 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's docker description , VOLUME /consul/data在开发模式下不以任何方式使用,这是领事代理的默认设置。

要运行在服务器模式下运行的 1 个领事代理 + 1 个保险库服务器(即 not recommended)的沙箱,您可以:

  • 为 consul 使用持久卷并将其挂载到容器上:
    docker volume create consul --label description='Persistent data for consul'
  • 启动领事容器:
    docker run -d \
    -p 8400:8400 -p 8500:8500 -p 8600:53/udp \
    --net host \
    --mount type=volume,source=consul,target=/consul/data \
    --name consul \
    -it consul agent -server -bind=127.0.0.1 -bootstrap-expect=1
  • 为 Vault 的服务器配置配置与绑定(bind)地址匹配的 consul 存储地址(本例中为 127.0.0.1):
        "storage" :{
    "consul" : {
    "address" :"127.0.0.1:8500"
  • 运行 Vault 镜像:
    docker run -d \
    -p 8200:8200 \
    -v /root/vault:/vault \
    --cap-add=IPC_LOCK \
    --net host \
    --name vault \
    vault server

  • 然后检查 consul 是否正确安装了卷:
    $ docker inspect --format '{{ .Mounts }}' consul

    Vault 已将 consul 配置为存储:
    $ docker logs vault 2>&1 | grep Storage                                                                    
    Storage: consul (HA available)

    然后像往常一样初始化/解封保险库。

    关于docker - 获取 consul Docker 图像以与 Vault 数据保持一致,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52535751/

    25 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com