Docker-11:Docekr安装Etcd

简介: Docker方式安装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

目录
相关文章
|
2月前
|
关系型数据库 MySQL Linux
Docker安装Mysql5.7,解决无法访问DockerHub问题
当 Docker Hub 无法访问时,可以通过配置国内镜像加速来解决应用安装失败和镜像拉取超时的问题。本文介绍了如何在 CentOS 上一键配置国内镜像加速,并成功拉取 MySQL 5.7 镜像。
487 2
Docker安装Mysql5.7,解决无法访问DockerHub问题
|
1月前
|
Prometheus 监控 Cloud Native
基于Docker安装Grafana和Prometheus
Grafana 是一款用 Go 语言开发的开源数据可视化工具,支持数据监控和统计,并具备告警功能。通过 Docker 部署 Grafana 和 Prometheus,可实现系统数据的采集、展示和告警。默认登录用户名和密码均为 admin。配置 Prometheus 数据源后,可导入主机监控模板(ID 8919)进行数据展示。
86 2
|
2月前
|
监控 虚拟化 Docker
Window系统安装Docker
这篇文章提供了在Windows系统上安装与配置Docker的详细指南,包括Docker Desktop的安装及通过Docker来运行容器化应用的步骤。
142 1
Window系统安装Docker
|
2月前
|
存储 物联网 数据安全/隐私保护
Docker安装Mosquitto
这篇文章详细介绍了如何在Docker中安装和配置Mosquitto消息代理服务,包括拉取镜像、创建容器以及配置持久化存储等步骤。
109 0
Docker安装Mosquitto
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
65 2
|
1月前
|
消息中间件 Linux RocketMQ
在Red Hat Enterprise Linux 9上使用Docker快速安装并部署
通过以上步骤,你可以在Red Hat Enterprise Linux 9上使用Docker快速安装并部署RocketMQ。这种方法不仅简化了安装过程,还提供了一个灵活的环境来管理和扩展消息队列系统。RocketMQ作为一款高性能的分布式消息系统,通过Docker可以实现快速部署和高效管理。
37 3
|
2月前
|
关系型数据库 MySQL Linux
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
基于阿里云服务器Linux系统安装Docker完整图文教程(附部署开源项目)
331 3
|
27天前
|
Docker 容器
【赵渝强老师】使用二进制包方式安装Docker
本文介绍了在企业生产环境中无法直接访问外网时,如何使用Docker官方提供的二进制包进行Docker的离线安装。文章详细列出了从安装wget、下载Docker安装包、解压、复制命令到启动Docker服务的具体步骤,并提供了相关命令和示例图片。最后,还介绍了如何设置Docker为开机自启模式。
|
27天前
|
缓存 Ubuntu Linux
如何安装Docker
如何安装Docker
126 0
|
2月前
|
数据可视化 数据挖掘 Docker
Docker Desktop 安装 ClickHouse 超级简单教程
Docker Desktop 安装 ClickHouse 超级简单教程
59 1