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 集群交互。

  • 23
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值