ubuntu+docker搭建etcd集群

1 下载compose,使用下面的指令下载compose

sudo curl -L "https://github.com/docker/compose/releases/download/1.24.1/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose

2 将可执行权限应用于二进制文件:

sudo chmod +x /usr/local/bin/docker-compose

创建软链:

wilson@wilson-virtual-machine:~$ sudo chmod +x /usr/local/bin/docker-compose
wilson@wilson-virtual-machine:~$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
ln: failed to create symbolic link '/usr/bin/docker-compose': File exists
wilson@wilson-virtual-machine:~$ ls
app_private_key.pem  app_public_key.pem  chaincode  conf  Desktop  Documents  Downloads  dump.rdb  go  java_error_in_goland_.hprof  logs  Music  mydata  mytestfaric  Pictures  Postman  pprof  Public  snap  Templates  tomcat  Videos  www
wilson@wilson-virtual-machine:~$ cd /usr/local/bin/
wilson@wilson-virtual-machine:/usr/local/bin$ ls
configtxgen    consul     discover        fabric-ca-client      idemixgen  peer    redis-benchmark  redis-check-dump  redis-sentinel  tclsh8.6
configtxlator  cryptogen  docker-compose  get-docker-images.sh  orderer    protoc  redis-check-aof  redis-cli         redis-server
wilson@wilson-virtual-machine:/usr/local/bin$ pwd
/usr/local/bin
wilson@wilson-virtual-machine:/usr/local/bin$ sudo ln -s /usr/local/bin/docker-compose /usr/bin/docker-compose
ln: failed to create symbolic link '/usr/bin/docker-compose': File exists
wilson@wilson-virtual-machine:/usr/local/bin$ ls
configtxgen    consul     discover        fabric-ca-client      idemixgen  peer    redis-benchmark  redis-check-dump  redis-sentinel  tclsh8.6
configtxlator  cryptogen  docker-compose  get-docker-images.sh  orderer    protoc  redis-check-aof  redis-cli         redis-server
wilson@wilson-virtual-machine:/usr/local/bin$ cp docker-compose /usr/bin/
cp: cannot create regular file '/usr/bin/docker-compose': Permission denied
wilson@wilson-virtual-machine:/usr/local/bin$ sudo cp docker-compose /usr/bin/

3 测试是否安装成功: 拉取etcd官方镜像

wilson@wilson-virtual-machine:/usr/bin$ docker-compose --version
docker-compose version 1.24.1, build 4667896b
wilson@wilson-virtual-machine:/usr/bin$ cker-compose version 1.24.1
cker-compose: command not found
wilson@wilson-virtual-machine:/usr/bin$ docker-compose --version
docker-compose version 1.24.1, build 4667896b
wilson@wilson-virtual-machine:/usr/bin$ cker-compose version 1.24.1
cker-compose: command not found
wilson@wilson-virtual-machine:/usr/bin$ docker-compose version 1.24.1
Show version information

Usage: version [--short]

Options:
    --short     Shows only Compose's version number.
wilson@wilson-virtual-machine:/usr/bin$ docker pull quay.io/coreos/etcd
Using default tag: latest
latest: Pulling from coreos/etcd
ff3a5c916c92: Already exists 
96b0e24539ea: Pull complete 
d1eca4d01894: Pull complete 
ad732d7a61c2: Pull complete 
8bc526247b5c: Pull complete 
5f56944bb51c: Pull complete 
Digest: sha256:5b6691b7225a3f77a5a919a81261bbfb31283804418e187f7116a0a9ef65d21d
Status: Downloaded newer image for quay.io/coreos/etcd:latest

4
在一个文件夹下创建 etcd-compose.yml文件,用于管理etcd容器 etcd-compost.yml

version: '3'
services:
  etcd-node1:
    image: "quay.io/coreos/etcd"
    container_name: "etcd-node1"
    ports:
      - "12379:2379"
      - "12380:2380"
    command: 'etcd -name etcd-node1 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd-node1=http://etcd-node1:2380,etcd-node2=http://etcd-node2:2380,etcd-node3=http://etcd-node3:2380" -initial-cluster-state new'
    networks:
      - "etcd"

  etcd-node2:
    image: "quay.io/coreos/etcd"
    container_name: "etcd-node2"
    ports:
      - "22379:2379"
      - "22380:2380"
    command: 'etcd -name etcd-node2 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd-node1=http://etcd-node1:2380,etcd-node2=http://etcd-node2:2380,etcd-node3=http://etcd-node3:2380" -initial-cluster-state new'
    networks:
      - "etcd"

  etcd-node3:
    image: "quay.io/coreos/etcd"
    container_name: "etcd-node3"
    ports:
      - "32379:2379"
      - "32380:2380"
    command: 'etcd -name etcd-node3 -advertise-client-urls http://0.0.0.0:2379 -listen-client-urls http://0.0.0.0:2379 -listen-peer-urls http://0.0.0.0:2380 -initial-cluster-token etcd-cluster -initial-cluster "etcd-node1=http://etcd-node1:2380,etcd-node2=http://etcd-node2:2380,etcd-node3=http://etcd-node3:2380" -initial-cluster-state new'
    networks:
      - "etcd"

networks:
  etcd:

5 启动yml文件

wilson@wilson-virtual-machine:/opt/go/src/awesomeProjects$ docker-compose -f etcd-compost.yml up -d
Creating network "awesomeprojects_etcd" with the default driver
Creating etcd-node2 ... done
Creating etcd-node3 ... done
Creating etcd-node1 ... done
wilson@wilson-virtual-machine:/opt/go/src/awesomeProjects$ docker ps
CONTAINER ID        IMAGE                 COMMAND                  CREATED             STATUS              PORTS                                              NAMES
d345e4f98677        quay.io/coreos/etcd   "etcd -name etcd-nod…"   10 seconds ago      Up 4 seconds        0.0.0.0:12379->2379/tcp, 0.0.0.0:12380->2380/tcp   etcd-node1
c03b26a2ce98        quay.io/coreos/etcd   "etcd -name etcd-nod…"   10 seconds ago      Up 5 seconds        0.0.0.0:32379->2379/tcp, 0.0.0.0:32380->2380/tcp   etcd-node3
2fe6a91844fb        quay.io/coreos/etcd   "etcd -name etcd-nod…"   10 seconds ago      Up 6 seconds        0.0.0.0:22379->2379/tcp, 0.0.0.0:22380->2380/tcp   etcd-node2

在这里插入图片描述

export ETCDCTL_API=3;

flag provided but not defined: -prefix
/ # 
/ # 
/ # 
/ # etcdctl member list
5b926f852fa1811: name=etcd-node1 peerURLs=http://etcd-node1:2380 clientURLs=http://0.0.0.0:2379 isLeader=true
9b3cd975d37c44ce: name=etcd-node2 peerURLs=http://etcd-node2:2380 clientURLs=http://0.0.0.0:2379 isLeader=false
9e13ad3ed0f8a26b: name=etcd-node3 peerURLs=http://etcd-node3:2380 clientURLs=http://0.0.0.0:2379 isLeader=false
/ # export ETCDCTL_API=3;
/ # 
/ # etcdctl get --prefix ""
/micro/registry/go.micro.http.broker/greeter-3d16f350-24c9-4675-b3a5-14bc753b61e5
{"name":"go.micro.http.broker","version":"ff.http.broadcast","metadata":null,"endpoints":null,"nodes":[{"id":"greeter-3d16f350-24c9-4675-b3a5-14bc753b61e5","address":"192.168.33.134:36231","metadata":{"broker":"http","secure":"false","topic":"greeter"}}]}
/micro/registry/greeter/greeter-562572e3-664a-4b13-99b8-df0b225b5b47
{"name":"greeter","version":"2021.06.03.11.20","metadata":null,"endpoints":[{"name":"Greeter.Hello","request":{"name":"HelloRequest","type":"HelloRequest","values":[{"name":"name","type":"string","values":null}]},"response":{"name":"HelloResponse","type":"HelloResponse","values":[{"name":"greeting","type":"string","values":null}]},"metadata":{}}],"nodes":[{"id":"greeter-562572e3-664a-4b13-99b8-df0b225b5b47","address":"192.168.33.134:44191","metadata":{"broker":"http","protocol":"mucp","registry":"etcd","server":"mucp","transport":"http"}}]}
/ # 
/ # 
/ # 
/ # 
/ # 

在这里插入图片描述

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
任务书:企业实训Linux 一、任务概述 本次企业实训旨在让学员掌握使用Docker部署Ubuntu+Docker+MySQL环境或使用shell脚本完成这个环境的能力。通过实践操作,学员将深入了解Docker容器技术的使用和管理。 二、任务要求 1. 学习Docker容器技术 学员需要掌握Docker容器技术的基本概念、使用方法和管理技巧,能够熟练使用Docker命令行工具进行容器管理。要求学员能够根据实际需要创建、启动、停止、删除Docker容器。 2. 学习部署Ubuntu+Docker+MySQL环境 学员需要掌握如何使用Docker部署Ubuntu+Docker+MySQL环境。要求学员能够独立完成环境的搭建,并能够根据实际需要进行修改和调试。 3. 学习使用shell脚本完成环境部署 学员需要掌握如何使用shell脚本完成Ubuntu+Docker+MySQL环境的部署。要求学员能够独立编写脚本,并能够根据实际需要进行修改和调试。 三、任务步骤 1. 学习Docker容器技术 学员需自学Docker容器技术的基本概念、使用方法和管理技巧,并通过实践操作掌握Docker命令行工具的使用方法。具体步骤如下: (1)学习Docker容器的基本概念和使用方法。 (2)学习Docker命令行工具的使用方法,如docker run、docker start、docker stop、docker rm等。 (3)根据实际需要创建、启动、停止、删除Docker容器,并进行相关的管理操作。 2. 学习部署Ubuntu+Docker+MySQL环境 学员需自学如何使用Docker部署Ubuntu+Docker+MySQL环境,并通过实践操作独立完成环境的搭建。具体步骤如下: (1)学习如何使用Docker部署Ubuntu环境。 (2)学习如何使用Docker部署MySQL环境。 (3)根据实际需要创建、启动、停止、删除Docker容器,并进行相关的管理操作。 3. 学习使用shell脚本完成环境部署 学员需自学如何使用shell脚本完成Ubuntu+Docker+MySQL环境的部署,并通过实践操作独立编写脚本。具体步骤如下: (1)学习shell脚本的基本语法和编写方法。 (2)编写shell脚本,实现自动化部署Ubuntu+Docker+MySQL环境。 (3)根据实际需要修改和调试已有的shell脚本。 四、任务总结 学员需在实训结束后,撰写一份实训总结报告。报告内容应包括学习内容、学习方法、学习心得以及实践操作中遇到的问题和解决方法等方面。同时,学员还需根据实训内容和自身情况,总结自己的优点和不足,并提出进一步提高的建议和措施。 五、任务评估 学员需按时完成任务,并在任务总结报告中详细记录实践操作过程和心得体会。评估标准如下: 1. 学习Docker容器技术,熟练掌握Docker命令行工具的使用方法。 2. 学习部署Ubuntu+Docker+MySQL环境,能够独立完成环境的搭建,并能够根据实际需要进行修改和调试。 3. 学习使用shell脚本完成环境部署,能够独立编写脚本,并能够根据实际需要进行修改和调试。 4. 实训总结报告内容完整、详细,能够清晰表达学习内容、学习方法、学习心得以及实践操作中遇到的问题和解决方法。 六、任务时限 本次实训任务时限为30天,学员需在规定时间内完成任务和实训总结报告。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值