Ubuntu 20.04 Docker 配置多机 Fabric 2.4

Ubuntu20.04 通过docker swarm组网四台虚拟机成四个组织的fabric网络

目录

基础环境配置

Ubuntu 20.04 换源

备份source.list

编辑source.list,换源ali

执行更新镜像源操作

安装docker环境 

docker环境 

docker-compose环境

 允许其他用户可以执行docker-compose命令

验证

 docker换源

重启docker

设置开机自启动

安装go环境

下载安装包

解压到指定路径

修改环境变量

 Swarm组网

修改/etc/hosts文件

创建共享网络 

 配置fabric密码学文件

启动fabric网络

基础环境配置

  • Ubuntu 20.04 换源

备份source.list

// 进入目录
cd /etc/apt
// 复制备份文件
cp source.list source.list.bak

编辑source.list,换源清华

vim sources.list

// 如果没有vim,首先执行: sudo apt-get install vim, 或者用vi编辑
# 按d + G 清空全部文件内容
# 默认注释了源码镜像以提高 apt update 速度,如有需要可自行取消注释
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-updates main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-backports main restricted universe multiverse
deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-security main restricted universe multiverse

# 预发布软件源,不建议启用
# deb https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse
# deb-src https://mirrors.tuna.tsinghua.edu.cn/ubuntu/ focal-proposed main restricted universe multiverse

 

执行更新镜像源操作

sudo apt-get update

sudo apt-get upgrade
  • 安装docker环境 

建议安装最新版docker系列

docker环境 

sudo apt-get install docker.io

docker-compose环境

sudo apt-get install docker-compose

 允许其他用户可以执行docker-compose命令

sudo chmod +x /usr/share/doc/docker-compose

验证

docker version

docker-compose version

 

 docker换源

sudo vim /etc/docker/daemon.json
{
  "registry-mirrors": ["https://y0qd3iq.mirror.aliyuncs.com"]
}

重启docker

service docker restart

设置开机自启动

sudo systemctl enable docker
  • 安装go环境

fabric版本2.4,对应的go版本1.16+,在此安装1.16.3版本

下载安装包

wget https://golang.google.cn/dl/go1.16.3.linux-amd64.tar.gz

解压到指定路径

tar -C /usr/local -xzf go1.16.3.linux-amd64.tar.gz

修改环境变量

编辑~/.bashrc 

vim ~/.bashrc

添加如下信息到文件末尾

export GOROOT=/usr/local/go
export GOPATH=$HOME/go
export PATH=$PATH:$GOROOT/bin:$GOPATH/bin
export GO111MODULE=on
export GOPROXY=https://goproxy.cn,direct

 使环境变量生效

source ~/.bashrc

验证

# 任意目录下执行
go env

  •  Swarm组网

环境为四台虚拟机通过Docker Swarm组网,分别对应四个组织,通过docker-compose运行节点镜像:

host1: 192.168.208.129
host2: 192.168.208.131
host3: 192.168.208.132
host4: 192.168.208.133

修改/etc/hosts文件

通过修改/etc/hosts文件,可以通过域名访问其他主机,当机器ip发生变化时直接修改此文件即可,不需要修改其他docker配置文件, 在/etc/hosts文件后添加如下内容

192.168.208.129 ca.org1.example.com
192.168.208.129 peer0.org1.example.com
192.168.208.129 peer1.org1.example.com
192.168.208.129 orderer.example.com

192.168.208.131 ca.org2.example.com
192.168.208.131 peer0.org2.example.com
192.168.208.131 peer1.org2.example.com
192.168.208.131 orderer2.example.com

192.168.208.132 ca.org3.example.com
192.168.208.132 peer0.org3.example.com
192.168.208.132 peer1.org3.example.com
192.168.208.132 orderer3.example.com

192.168.208.133 ca.org4.example.com
192.168.208.133 peer0.org4.example.com
192.168.208.133 peer1.org4.example.com
192.168.208.133 orderer4.example.com

到此为止,host2、host3、host4需要重复以上所有操作

# 创建swarm网络,rpi1做这个操作即可
sudo docker swarm init --advertise-addr 192.168.208.129
# 显示其他主机加入节点的口令
sudo docker swarm join-token manager

 成功运行后将显示其他主机加入Swarm网络的命令,如下:

在host2、host3、host4终端分别执行如下命令加入到该网络:

sudo docker swarm join --token SWMTKN-1-2r4sfz1j4lgag78j53d111ybfla1s896w0wzunszo6nr1ngtx2-d617o30o8alsrzz1ltghe29fh 192.168.208.129:2377

创建共享网络 

# 创建共享网络
sudo docker network create --attachable --driver overlay first-network
# 显示网络信息,host1-host4均可显示加入swarm网络first-network
sudo docker network ls

  •  配置fabric密码学文件

具体操作请参照另一篇blog:Ubuntu 20.04 配置fabric 2.4 密码学文件并实现多机部署

 分别将对应主机上的密码学文件通过scp传到虚拟机上:

 其他主机执行相同步骤

  • 启动fabric网络

cd ~/fabric-lab

sudo docker-compose -f host1.yaml up -d

 其他几台虚拟机启动命令相同,启动成功后可以查看启动的镜像,以host1为例:

 虚拟机重启后,docker network发现自建的swarm网络被删除,重新通过swarm组网后直接启动fabric网络会报错:Could not attach to network tqbrne3c5vy805cyqat1mjz0m: rpc error: code = NotFound desc = network tqbrne3c5vy805cyqat1mjz0m not found。

需要清空docker的缓存再启动fabric网络

sudo docker system prune
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值