etcd 安装和启动 docker 服务

创建日期: 2025-02-13 10:14 | 作者: 风波 | 浏览次数: 16 | 分类: KV数据库

1. 安装 etcd

安装包下载页面:https://github.com/etcd-io/etcd/releases/ 安装包下载地址:https://github.com/etcd-io/etcd/releases/download/v3.5.18/etcd-v3.5.18-linux-amd64.tar.gz

解压后主要有三个文件: - etcd - etcdctl - etcdutl

因为是 go 项目,所以解压后直接可以在 linux 环境运行

2. 启动服务

直接执行命令 etcd 启动服务。

服务启动后,会将当前工作目录作为数据存储位置,所以在启动 docker 服务的时候,需要指定 WORKDIR 为数据存储位置

3. 使用 docker-compose 启动服务

3.0 Dockerfile

FROM debian:12.7

USER root

COPY etcd  etcdctl  etcdutl /usr/bin/
COPY ./entrypoint.sh /docker-entrypoint.sh

ENV ETCD_DATA_DIR /var/lib/etcd
ENV ETCD_WAL_DIR /var/log/etcd
ENV ETCD_LISTEN_CLIENT_URLS "http://0.0.0.0:2379"

WORKDIR /var/lib/etcd/

ENTRYPOINT ["/docker-entrypoint.sh"]

3.1 启动服务

在打镜像的时候提前设置了 WORKDIR/var/lib/etcd

services:
  etcd_server:
    image: etcd:v3.5.18
    user: root
    network_mode: bridge
    restart: always
    ports: 
      - "10379:2379"
    volumes:
      - ./etcd/data:/var/lib/etcd
    environment:
      ETCD_LISTEN_CLIENT_URLS: "http://0.0.0.0:2379"
      ETCD_ADVERTISE_CLIENT_URLS: "http://server:10379"

参数文档:https://etcd.io/docs/v3.4/op-guide/configuration/ https://etcd.io/docs/v3.1/op-guide/configuration/

3.2 其他参数

4. 使用 etcd

如果进行简单测试,需要 docker exec -it 到容器内部

4.1 写入数据

文档:https://etcd.io/docs/v3.5/tutorials/writing-to-etcd/

etcdctl put foo "Hello World!"

4.2 读取数据

文档:https://etcd.io/docs/v3.5/tutorials/reading-from-etcd/

etcdctl get foo

4.3 删除数据

--endpoints="127.0.0.1:2379": gRPC endpoints
etcdctl --endpoints=$ENDPOINTS put key myvalue
etcdctl --endpoints=$ENDPOINTS del key

etcdctl --endpoints=$ENDPOINTS put k1 value1
etcdctl --endpoints=$ENDPOINTS put k2 value2
etcdctl --endpoints=$ENDPOINTS del k --prefix
16 浏览
0 评论