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月前
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
7天前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
59 3
docker 安装 Postgres 17.6
|
5月前
|
存储 安全 C++
Odoo 安装方式选择:源码安装 vs Docker
Odoo部署常采用源码编译或Docker容器化,但分别面临依赖复杂、版本风险和服务化难题,以及镜像臃肿和扩展受限的问题。Websoft9提出混合方案,融合两者优势:通过智能环境适配、三阶段部署流程(环境预检、混合模式选择、持久化配置)及声明式YAML配置,实现高效、灵活的双模运行时。此方案显著降低依赖冲突解决时间(从83分钟至0),生产环境构建耗时缩短至8分钟,并达100% CVE漏洞修复率,适合ERP定制开发与规模化部署的企业需求。
|
3月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
392 4
|
2月前
|
Linux Docker Windows
windows docker安装报错适用于 Linux 的 Windows 子系统必须更新到最新版本才能继续。可通过运行 “wsl.exe --update” 进行更新。
适用于 Linux 的 Windows 子系统需更新至最新版本(如 wsl.2.4.11.0.x64.msi)以解决 2025 年 Windows 更新后可能出现的兼容性问题。用户可通过运行 “wsl.exe --update” 或访问提供的链接下载升级包进行更新。
815 0
|
3月前
|
Linux iOS开发 Docker
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
125 1
|
4月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
307 5