Etcd 是一个高可用的键值存储系统,主要用于共享配置和服务发现。它由 CoreOS 团队开发,并且是 CoreOS 集群的后端存储。Etcd 也适用于任何需要强一致性、高可用性和可扩展性的分布式系统。
本教程将介绍如何使用 Docker CLI 和 Docker Compose 两种方式来搭建 Etcd 集群。
使用 Docker CLI 搭建 Etcd 集群
首先,确保 Docker 已经安装在系统上。接下来,我们将通过 Docker CLI 来运行 Etcd 容器。
拉取 Etcd 镜像
docker pull bitnami/etcd
这个命令将从 Docker Hub 下载 Bitnami 官方提供的 Etcd 镜像。
启动 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 集群。
创建
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
: 自定义网络名称。
启动 Etcd 集群
在包含
docker-compose.yml
文件的目录下,运行以下命令来启动 Etcd 集群:docker-compose up -d
-d
参数表示在后台运行服务。
通过以上步骤,你已经成功使用 Docker CLI 和 Docker Compose 两种方式搭建了一个 Etcd 集群。现在,你可以通过访问 http://localhost:2379
来与 Etcd 集群交互。