go+etcd(一): etcd环境简单手工搭建

一. 搭建准备

#拉取go镜像
docker pull golang:1.12-alpine
#下载etcd,解压出来,得到etcd-v3.4.11-linux-amd64文件夹
https://github.com/etcd-io/etcd/releases
#创建文件夹
mkdir -p etcd/conf etcd/data
#结构
/home/shenyi/etcd  
    --- conf
    -- data

二. 运行etcd

  1. 创建容器
#实例化go容器
docker run -it  --name etcd -p 2379:2379 -v /home/shenyi/etcd:/etcd golang:1.12-alpine sh
#进入etcd文件夹
cd etcd-v3.4.11-linux-amd64
#拷贝etcd和etcdctl文件夹到go容器中
docker cp etcd etcd:/usr/bin && docker cp etcdctl etcd:/usr/bin

这里我报了一个错

Got permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Put http://%2Fvar%2Frun%2Fdocker.sock/v1.40/containers/etcd/archive?noOverwriteDirNonDir=true&path=%2Fusr: dial unix /var/run/docker.sock: connect: permission denied

解决

sudo groupadd docker          #添加docker用户组
sudo gpasswd -a $XXX docker   #检测当前用户是否已经在docker用户组中,其中XXX为用户名,例如我的,liangll
sudo gpasswd -a $USER docker  #将当前用户添加至docker用户组
newgrp docker                 #更新docker用户组

参考:https://blog.csdn.net/liangllhahaha/article/details/92077065

  1. 创建配置文件
    在宿主机/home/shenyi/etcd/conf下创建如下内容
name: $(hostname -s)
data_dir: /etcd/data
listen-client-urls: http://0.0.0.0:2379

文件名 etcd.yml

  1. 运行etcd
#进入容器
docker exec -it etcd sh
#增加可执行权限
chmod +x /usr/bin/etcd
#查看版本
etcd --version
#开启etcd
etcd --config-file  /etcd/conf/etcd.yml
#退出容器,快捷键(Ctrl+Q+P)

三. 更改etcdctl版本

#重新进入容器
docker exec -it etcd sh
#增加可执行权限
chmod +x /usr/bin/etcdctl
#查看版本(版本2命令)
etcdctl -v
#改成版本3
export ETCDCTL_API=3
#查看版本(版本3命令)
etcdctl version

四. 测试

命令:

etcdctl put /user/101/name shenyi   #设置值
etcdctl put /user/101/age 19   #设置值
etcdctl get /user/101/name   #获取值
etcdctl get /user/101 --prefix	#获取/user/101全部键值
etcdctl del /user/101 --prefix	#删除/user/101全部键值

结果:

在这里插入图片描述

猜你喜欢

转载自blog.csdn.net/qq_36453564/article/details/108096237