在云原生环境下etcd 是最核心的存储组件之一也是很多云原生应用都依赖的存储组件如 Kubernetes、CoreDNS、Rook等。etcd 在2026年5月最新版本v3.6.11v3.5.30v3.4.44etcd 的 Docker 容器镜像托管在 Quay.io 和 Gcr.io 两个平台藏云阁提供镜像的同步registry.cncfstack.com/quay.io/coreos/etcd:v3.6.11registry.cncfstack.com/gcr.io/etcd-development/etcd:v3.6.11etcd 项目最初由 CoreOS 公司创建并开源因此其早期镜像托管在 CoreOS 活跃使用的 quay.io 上。随着 etcd 成为 CNCF云原生计算基金会 的项目并成为 Kubernetes 的核心数据存储它与 Kubernetes 生态的联系愈发紧密。为了让 Kubernetes 集群的部署和运行更加稳定高效etcd 官方在 2017 年底决定将 gcr.io 作为主要分发渠道之一但同时也明确表示 quay.io 上的镜像不会被废弃会继续维护。其他 etcd 资源etcd 官方网站镜像地址: https://etcd.website.cncfstack.cometcd Code 代码仓库镜像: https://cncfstack.com/code/etcd-io/etcdetcd Logo: https://cncfstack.com/p/etcd/logo/etcd HelmChart: https://cncfstack.com/p/etcd/helmchartdocker-compose.yml单机使用 docker-compose 运行 etcd 可以直接使用如下配置。核心需要注意的配置是/data/etcd这个挂载要指定一个宿主机上的目录用来保存 etcd 的数据。由于 etcd 是 IO 敏感型的强烈推荐使用 SSD 类型的磁盘来挂载。services:etcd:container_name:etcdimage:registry.cncfstack.com/quay.io/coreos/etcd:v3.6.11restart:unless-stoppeddeploy:resources:limits:cpus:2memory:2Gports:-2379:2379-2380:2380volumes:-/data/etcd:/var/lib/etcd-/etc/localtime:/etc/localtime:roenvironment:-ETCD_NAMEetcd-node01-ETCD_DATA_DIR/var/lib/etcd-ETCD_LISTEN_CLIENT_URLShttp://0.0.0.0:2379-ETCD_ADVERTISE_CLIENT_URLShttp://0.0.0.0:2379-ETCD_LISTEN_PEER_URLShttp://0.0.0.0:2380-ETCD_INITIAL_ADVERTISE_PEER_URLShttp://0.0.0.0:2380-ETCD_INITIAL_CLUSTERetcd-node01http://0.0.0.0:2380-ETCD_INITIAL_CLUSTER_TOKENetcd-cluster-token-ETCD_INITIAL_CLUSTER_STATEnew-ETCD_AUTO_COMPACTION_MODErevision-ETCD_AUTO_COMPACTION_RETENTION1000-ETCD_QUOTA_BACKEND_BYTES4294967296-ETCD_SNAPSHOT_COUNT50000-ETCD_LOG_LEVELinfo-ETCD_LOGGERzap-ETCD_LISTEN_METRICS_URLShttp://0.0.0.0:2381healthcheck:test:[CMD,etcdctl,endpoint,health]interval:30stimeout:10sretries:5start_period:30slogging:driver:json-fileoptions:max-size:10mmax-file:3在 docker-compose.yml 目录下执行如下命令启动docker-composeup-detcdctl aliasetcd 在基于容器部署时在宿主机上是没有 etcdctl 工具而直接使用docker run运行 etcdctl 命令太长也不方便。可以通过添加一个 alias 别名的方式来简化命令。IPipaddr show eth0|grepinet\ |awk-F/{print $1}|awk{print $2}aliasetcdctldocker run -i --rm registry.cncfstack.com/quay.io/coreos/etcd:v3.6.11 etcdctl --endpoints http://${IP}:2379 后续可以直接使用etcdctl命令来操作 etcd。验证验证过程用于判断 etcd 是否安装成功能否正常读写数据查看etcd容器状态使用 docker compose ls 命令查看 etcd 容器状态# docker compose ls |grep etcdetcd running(1)/xxxxxx/etcd/docker-compose.yml查看etcd健康状态etcd 集群健康状态可以通过etcdctl endpoint health命令查看# etcdctl endpoint health http://192.168.1.1:2379 is healthy: successfully committed proposal: took 2.373165ms验证etcd数据读写读写数据测试# etcdctl put aa bbOK# etcdctl get aaaa bb