Docker搭建Etcd集群

Etcd 是一个高可用的键值存储系统,主要用于共享配置和服务发现。它由 CoreOS 团队开发,并且是 CoreOS 集群的后端存储。Etcd 也适用于任何需要强一致性、高可用性和可扩展性的分布式系统。

本教程将介绍如何使用 Docker CLI 和 Docker Compose 两种方式来搭建 Etcd 集群。

使用 Docker CLI 搭建 Etcd 集群

首先,确保 Docker 已经安装在系统上。接下来,我们将通过 Docker CLI 来运行 Etcd 容器。

  1. 拉取 Etcd 镜像

    docker pull bitnami/etcd
    

    这个命令将从 Docker Hub 下载 Bitnami 官方提供的 Etcd 镜像。

  2. 启动 Etcd 容器

    使用以下命令启动一个 Etcd 容器:

    docker run -d --name etcd-node \
      -p 2379:2379 -p 2380:2380 \
      --env ETCD_NAME=node \
      --env ETCD_INITIAL_CLUSTER=node \
      --env ETCD_INITIAL_CLUSTER_STATE=new \
      --env ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380 \
      --env ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379 \
      --env ETCD_ADVERTISE_CLIENT_URLS=http://localhost:2379 \
      bitnami/etcd:latest
    

    参数解释:

    • -d: 后台运行容器。
      --name etcd-node: 给容器命名为 etcd-node
    • -p 2379:2379: 将容器的 2379 端口映射到宿主机的 2379 端口,这是 Etcd 客户端访问的端口。
    • -p 2380:2380: 将容器的 2380 端口映射到宿主机的 2380 端口,这是 Etcd 集群节点之间通信的端口。
    • --env: 设置环境变量。
      • ETCD_NAME=node: 设置集群节点的名称为 node
      • ETCD_INITIAL_CLUSTER=node: 初始集群中的节点名称,对于单节点集群,可以重复此名称。
      • ETCD_INITIAL_CLUSTER_STATE=new: 集群的初始状态,new 表示创建一个新集群。
      • ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380: 集群节点监听的对等网络 URL。
      • ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379: 集群节点监听的客户网络 URL。
      • ETCD_ADVERTISE_CLIENT_URLS=http://localhost:2379: 集群节点对外宣传的客户 URL。
    • bitnami/etcd:latest: 使用的 Etcd 镜像和标签。

使用 Docker Compose 搭建 Etcd 集群

Docker Compose 是一个用于定义和运行多容器 Docker 应用程序的工具。下面是一个简单的 docker-compose.yml 文件示例,用于启动一个 Etcd 集群。

  1. 创建 docker-compose.yml 文件

    在本地目录下创建一个名为 docker-compose.yml 的文件,并添加以下内容:

    version: '3'
    services:
      etcd:
        image: bitnami/etcd:latest
        ports:
          - '2379:2379'
          - '2380:2380'
        environment:
          - ETCD_NAME=node
          - ETCD_INITIAL_CLUSTER=node
          - ETCD_INITIAL_CLUSTER_STATE=new
          - ETCD_LISTEN_PEER_URLS=http://0.0.0.0:2380
          - ETCD_LISTEN_CLIENT_URLS=http://0.0.0.0:2379
          - ETCD_ADVERTISE_CLIENT_URLS=http://localhost:2379
        networks:
          - etcd_network
    networks:
      etcd_network:
    

    参数解释:

    • version: '3': Docker Compose 文件版本。
    • services: 定义服务。
      • etcd: 服务名称。
        • image: 使用的 Etcd 镜像。
        • ports: 端口映射。
          • '2379:2379': 客户端端口映射。
          • '2380:2380': 对等网络端口映射。
        • environment: 环境变量设置,与 Docker CLI 命令中的 --env 参数相同。
        • networks: 指定网络。
          • etcd_network: 服务连接的网络。
    • networks: 定义网络。
      • etcd_network: 自定义网络名称。
  2. 启动 Etcd 集群

    在包含 docker-compose.yml 文件的目录下,运行以下命令来启动 Etcd 集群:

    docker-compose up -d
    

    -d 参数表示在后台运行服务。

通过以上步骤,你已经成功使用 Docker CLI 和 Docker Compose 两种方式搭建了一个 Etcd 集群。现在,你可以通过访问 http://localhost:2379 来与 Etcd 集群交互。

相关推荐

  1. DockerEtcd

    2024-03-27 09:22:01       18 阅读
  2. Dockerkafka

    2024-03-27 09:22:01       31 阅读
  3. 简单docker swarm

    2024-03-27 09:22:01       38 阅读

最近更新

  1. TCP协议是安全的吗?

    2024-03-27 09:22:01       18 阅读
  2. 阿里云服务器执行yum,一直下载docker-ce-stable失败

    2024-03-27 09:22:01       19 阅读
  3. 【Python教程】压缩PDF文件大小

    2024-03-27 09:22:01       18 阅读
  4. 通过文章id递归查询所有评论(xml)

    2024-03-27 09:22:01       20 阅读

热门阅读

  1. Spring Boot设置io临时目录

    2024-03-27 09:22:01       15 阅读
  2. go实现链表

    2024-03-27 09:22:01       17 阅读
  3. 计算机网络——网络基础1

    2024-03-27 09:22:01       15 阅读
  4. vue3 之 Pinia

    2024-03-27 09:22:01       16 阅读
  5. 第三十三章 配置服务器访问 - SSL TLS 参数

    2024-03-27 09:22:01       16 阅读
  6. React组件如何通信

    2024-03-27 09:22:01       17 阅读
  7. react setState函数的使用与异步更新

    2024-03-27 09:22:01       19 阅读
  8. React 18中hook函数详解之useState和useEffect

    2024-03-27 09:22:01       18 阅读
  9. LORA模型和稳定扩散模型的区别是什么?

    2024-03-27 09:22:01       19 阅读
  10. jetson-Ubuntu-指令

    2024-03-27 09:22:01       19 阅读
  11. jar.exe解压缩jar包

    2024-03-27 09:22:01       21 阅读
  12. 视频 | 轨迹模型及其它潜变量模型理论与实践

    2024-03-27 09:22:01       17 阅读
  13. 共享旅游卡到底是怎么回事?

    2024-03-27 09:22:01       16 阅读