今年8月份的时候想学习一下hyperledger,于是就开始从0搭建fabric环境。参考了网上的众多教程,以深蓝居大神的为主,遇到了许多问题,后来实在搞不好,又买了一本书——《Hyperledger Fabric实战开发》,书里的问题也不少,系统从Ubuntu换成了centos 7,环境搭了好几遍,踩了无数的坑,现在终于搞好了。和我一样初次搭建环境的小白可以看一下,后面会持续更新,从环境搭建,到官方案例的运行,再到实战开发。
使用系统:centos7(虚拟机)
fabric版本:v1.1
本教程使用centos官网下载的centos7镜像,通过vmware虚拟机安装好后直接在纯净环境下进行,所有指令均有运行并且通过测试,关键步骤均有截图,雷区也都有提醒。如果有哪里没运行成功,可以在下边留言告诉我,我会及时解答。
这一步主要是为了更换阿里的yum源,使得后续的yum下载更快更方便。
分别执行如下操作:
1、更新yum
sudo yum update
sudo wget -O /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo
sudo yum clean all
sudo yum makecache
这一步的时候要小心检查一下有没有报错,因为这里很容易因为网络原因出现错误。如果有,尝试重复进行sudo yum makecache
实在不行的话可以换一个质量好一些的网络重复上述步骤,或者百度:centos换源,换一个源。
成功后如图所示
4、再次更新yum
sudo yum update
docker对于新手来说实在是一个玄幻的东西。有朋友说他几行命令就装好了,但是我却用了整整一天的时间,各种出错。docker安装其实并不难,关键在于你参考的教程是否正确,参考错了教程就会到处踩雷。这里给大家推荐一个靠谱的教程
https://yeasy.gitbooks.io/docker_practice/install/centos.html
这本书里不但有各种系统安装docker的安装,还有讲docker的基本概念,帮助你快速理解什么是docker,适合新手读。大家可以从头开始照着做,都没有问题。
鉴于该网站连接性不是特别好,时而上不去,可能还需要搭梯子,我就做一下简单的搬运,以及稍微的修正。能打开的朋友建议收藏一下这本书。
###卸载旧版本
旧版本的 Docker 称为 docker 或者 docker-engine,对于纯净的系统来说并没有旧版本的docker,这步可以省略。使用以下命令卸载旧版本:
sudo yum remove docker \
docker-client \
docker-client-latest \
docker-common \
docker-latest \
docker-latest-logrotate \
docker-logrotate \
docker-selinux \
docker-engine-selinux \
docker-engine
使用以下命令
sudo yum install -y yum-utils \
device-mapper-persistent-data \
lvm2
先执行以下命令
sudo yum-config-manager \
--add-repo \
https://mirrors.ustc.edu.cn/docker-ce/linux/centos/docker-ce.repo
sudo yum clean all
sudo yum makecache
执行以下命令:
sudo yum install docker-ce
这一步是最重要的,同样也是最容易出问题的,可以看到我在执行的时候也报了一个error。在这里我总结以下错误的原因,如果你们遇到了问题可以排查一下:
1、添加源没有成功。建议检查前边的“添加yum源”“清理并生成缓存”等步骤有没有问题,如果有问题就重新试一下。
2、网络原因导致下载失败。我在刚执行完这个指令开始下载的时候,速度只有1kb/s,后来速度才上升到几十k,所以会很慢,运气不好还会直接time out 。我的网络是用手机开的热点,所以会比较困难一点,如果你也是这样建议换一个稳定的宽带网络试一试。
总之,克服一下困难,多试几次,总会成功。
设置开机启动,这一步基本上没有问题。
sudo systemctl enable docker
sudo systemctl start docker
这一步是大多数教程都没有讲的一个问题。在我们install docker-ce成功了以后,直接使用docker version查看版本,会出现以下错误:
大致意思是说,我们没有权限使用/var/run/docker.sock
这个文件,导致docker server启动失败。因此这里需要将用户添加至docker用户组,解决权限的问题。
首先使用以下指令,查看用户组
cat /etc/group
如图所示
可以看到,现在的这个docker组中没有我们的用户名,这就是docker server启动失败的原因。
接下来把我们的用户名添加到docker组中
使用以下命令
sudo usermod -a -G docker $USER
可以把$USER换成你自己的用户名。
这里一定要注意!命令中的-a不能少,因为如果没有这个-a,那么当你把自己的用户加入docker组的同时会退出其他所有的组,这是一件极其恐怖的事情,因为你退出了root组,将无法使用root权限。
最后,执行以下命令:
cd /var/run
ls -l docker.sock
查看docker.sock的权限
更改权限:
sudo chmod 777 docker.sock
可以看到我们将所有用户都赋予了可执行docker.sock文件的权限。
对上述指令不太理解的,推荐一篇文章给你们:https://www.cnblogs.com/SZ2015/p/7691094.html
最后:
大功告成!
本来已经写好了第二篇,结果因为电脑原因,浏览器重启了,我也疏于保存,只能忍痛重写,来日再更,溜了