获取Consul Docker镜像以保持Vault数据的持久性


林老爷的日常
2025-03-07 01:41:25 (14天前)
  1. 我使用Vault Docker镜像和Consul Docker镜像作为其存储。

我的问题是,如果据说Consul容器会关闭,我将尝试运行一个新的容器,我需要初始化…

4 条回复
  1. 0# 文艺青年3 | 2019-08-31 10-32



    你需要

    导致Consul容器持久化

    /consul/data

    目录

    。 (Hashicorp文档还建议单独支持Consul。)一种典型的方法是改变你的

    docker run

    命令




    1. docker run -v ./consul:/consul/data consul

    2. </code>


    (如果您使用相同的选项启动相同的容器,可能会将图像设置为在您的背后进行尝试,但是明确这一点可能是一种很好的做法,加倍知道要知道要备份的目录。)


  2. 1# 1号 | 2019-08-31 10-32



    最后我做了以下事情:



    为consul创建持久卷并将其挂载到容器上:




    1. docker volume create consul-volume label description=’Persistent data for consul

    2. </code>


    为consul创建local.json配置文件:




    1. {
      log_level”: DEBUG”,
      server”: true,
      ui”: true,
      bootstrap”: true,
      client_addr”:”0.0.0.0
      }

    2. </code>


    运行consul容器:




    1. 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

    2. </code>


    运行保管库容器:




    1. docker run -d -p 8200:8200 -v /root/vault:/vault cap-add=IPC_LOCK vault server

    2. </code>


    并且consul容器中的数据是持久的。


  3. 2# biu~额 | 2019-08-31 10-32



    根据

    领事的码头描述



    VOLUME /consul/data

    在开发模式下不以任何方式使用,这是consul代理的默认模式。



    用于运行在服务器模式+ 1个Vault服务器中运行的1个consul代理的沙箱(即

    不建议

    ), 您可以:





    • 使用持久卷作为consul并将其挂载到容器上:




      1. docker volume create consul label description=’Persistent data for consul

      2.     </code>
      3.   </pre>
      4. </LI>
      5. <LI>
      6.   <P>
      7.     启动consul容器:
      8.   </p>
      9.    <pre>
      10.     <code>
      11.       docker run -d \
      12. -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

      13.     </code>
      14.   </pre>
      15. </LI>
      16. <LI>
      17.   <P>
      18.     配置与绑定地址匹配的Vault的服务器配置的consul存储地址(
      19.      <code>
      20.       127.0.0.1
      21.     </code>
      22.      对于这个例子):
      23.   </p>
      24.    <pre>
      25.     <code>
      26.           "storage" :{
      27.         "consul" : {
      28.   "address" :"127.0.0.1:8500"
      29.     </code>
      30.   </pre>
      31. </LI>
      32. <LI>
      33.   <P>
      34.     运行Vault映像:
      35.   </p>
      36.    <pre>
      37.     <code>
      38.       docker run -d \
      39. -p 8200:8200 \
        -v /root/vault:/vault \
        cap-add=IPC_LOCK \
        net host \
        name vault \
        vault server

      40.     </code>
      41.   </pre>
      42. </LI>


    然后检查领事是否正确安装了音量:




    1. $ docker inspect format ‘{{ .Mounts }}’ consul

    2. </code>


    Vault已将consul配置为存储:




    1. $ docker logs vault 2>&1 | grep Storage
      Storage: consul (HA available)

    2. </code>


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


登录 后才能参与评论