Docker-11:Docekr安装Etcd

1. 概念介绍

etcd

etcdCoreOS 团队于2013年6月发起的开源项目,它的目标是构建一个高可用的分布式键值(key-value)数据库。 etcd 内部采用raft协议作为一致性算法,etcd 基于 Go语言 实现。

特点如下:

  • 简单:安装配置简单,而且提供了HTTP API进行交互,使用也很简单
  • 安全:支持SSL证书验证
  • 快速:根据官方提供的benchmark数据,单实例支持每秒2k+读操作
  • 可靠:采用raft算法,实现分布式系统数据的可用性和一致性
  • 开源:etcd项目地址:https://github.com/coreos/etcd/

2. 环境准备

此处安装,是利用下载的 etcd 源文件,利用 docker build 构建完整镜像,具体操作如下:

2.1. 新建文件夹

在磁盘某个路径下新建一个文件夹,用处操作 Dockerfile 和 源文件。

演示中的路径在 /data/docker-compose/etcd ,如特殊说明,否则都在此路径,以下简称 ETCD_HOME

2.2. 下载

ETCD_HOME 中下载最新版本,官方下载地址如下: wget https://github.com/etcd-io/etcd/releases/download/v3.4.20/etcd-v3.4.20-linux-amd64.tar.gz

2.3. 文件解压

解压文件 tar.gz 得到 etcd-v3.4.20-linux-amd64 文件夹。

tar -zxvf etcd-v3.4.20-linux-amd64.tar.gz

2.4. 文件拷贝

etcd-v3.4.20-linux-amd64 文件夹下,有 etcdetcdctl 两个文件,拷贝至与 etcd-v3.4.20-linux-amd64 同一级。

cp etcd-v3.4.20-linux-amd64/etcd etcd-v3.4.20-linux-amd64/etcdctl .

最终目录结构如下

etcd\
|----------etcd-v3.4.20-linux-amd64
|----------etcd
|----------etcdctl
|----------etcd-v3.4.20-linux-amd64.tar.gz

3. 安装

3.1. Dockerfile编写


FROM alpine:latest
ADD etcd /usr/local/bin/
ADD etcdctl /usr/local/bin/
RUN mkdir -p /var/etcd/
RUN mkdir -p /var/lib/etcd/
RUN echo 'hosts: files mdns4_minimal [NOTFOUND=return] dns mdns4' >> /etc/nsswitch.conf
EXPOSE 2379 2380
CMD ["/usr/local/bin/etcd"]

3.2. 构建etcd镜像


docker build -t etcd .

构建过程可能会比较久,与本地环境有关系,耐心等待即可!

20220820223550

3.3. 查看构建etcd镜像

20220820223759

4. 启动

因为是开发环境,不做集群演示,仅单服务启动。


docker run -d -v /usr/share/ca-certificates/:/etc/ssl/certs -p 4001:4001 -p 2380:2380 -p 2379:2379 \
 --name etcd etcd /usr/local/bin/etcd \
 -name etcd0 \
 -advertise-client-urls http://0.0.0.0:2379 \
 -listen-client-urls http://0.0.0.0:2379 \
 -initial-advertise-peer-urls http://0.0.0.0:2380 \
 -listen-peer-urls http://0.0.0.0:2380 \
 -initial-cluster-token etcd-cluster-1 \
 -initial-cluster etcd0=http://0.0.0.0:2380 \
 -initial-cluster-state new

  • name: 节点名称
  • advertise-client-urls: 知客户端url, 也就是服务的url
  • initial-advertise-peer-urls: 告知集群其他节点url
  • listen-peer-urls: 监听URL,用于与其他节点通讯
  • initial-cluster-token: 集群的ID
  • initial-cluster: 集群中所有节点

5. 验证

为了方便可视化,此处验证服务,我用了 ETCD 可视化工具,etcd-manager

20220820225823

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
要在docker desktop上安装etcd,可以按照以下步骤进行操作: 1. 首先,创建一个目录来存储etcd的数据文件,可以将其命名为`/usr/local/docker/etcd`。 2. 在该目录下创建一个名为`docker-compose.yml`的文件,并在其中添加以下内容: ```yaml version: '3' networks: myetcd_cluster: services: etcd1: image: quay.io/coreos/etcd container_name: etcd1 command: etcd -name etcd1 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 ports: - 12379:2379 - 12380:2380 volumes: - ./etcd1:/etcd-data networks: - myetcd_cluster etcd2: image: quay.io/coreos/etcd container_name: etcd2 command: etcd -name etcd2 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-advertise-peer-urls http://etcd1:2380 volumes: - ./etcd2:/etcd-data networks: - myetcd_cluster etcd3: image: quay.io/coreos/etcd container_name: etcd3 command: etcd -name etcd3 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-advertise-peer-urls http://etcd1:2380 volumes: - ./etcd3:/etcd-data networks: - myetcd_cluster ``` 3. 运行以下命令启动etcd集群: ```bash docker-compose up -d ``` 这将在后台启动etcd集群。现在,您可以使用etcd客户端工具来与etcd集群进行交互。 请注意,上述步骤假设您已经安装了docker desktop,并且已经将其正确配置。确保在进行上述步骤之前先安装和配置docker desktop。<span class="em">1</span><span class="em">2</span><span class="em">3</span> #### 引用[.reference_title] - *1* *2* *3* [ETCD教程(一) 通过docker安装etcd集群](https://blog.csdn.net/JineD/article/details/127290804)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v92^chatsearchT3_1"}}] [.reference_item style="max-width: 100%"] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

王老邪

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值