学习研究Hyperledger所用到的docker命令,之后会不断完善html
一、docker安装信息git
$ docker info
二、docker版本github
$ docker version
三、列出全部正在运行的容器docker
$ docker ps
四、查看docker安装的镜像bash
$ docker images
五、删除指定镜像学习
$ docker rmi <image id>
六、删除全部镜像区块链
$ docker rmi $(docker images -q)
过程当中有些状况下不能所有删除,image is referenced in multiple repositories 出现这种情况,解决方式测试
删除时能够用repository和tag的方式来删除网站
$ docker rmi repository:tag
七、关闭运行的镜像spa
$ docker rm -f $(docker ps -aq)
八、对docker容器的处理
$ docker stop mydocker 启动一个或多少已经被中止的容器 $ docker restart mydocker 中止一个运行中的容器 $ docker start mydocker 重启容器
九、标记本地镜像,将其纳入某一仓库
$ docker tag aberic/fabric-edge:1.0-RC2 aberic/fabric-edge:latest
十、登陆某个容器,进入容器的bash环境
$ docker exec -it container-id/container-name bash
十一、链码的安装
$ peer chaincode install -n ChaincodeName -v version -p ChaincodePath
ChaincodeName:指链码的name
version:链码的版本
ChaincodePath:链码的路径,默认:
github.com/hyperledger/fabric/examples/chaincode/go/chaincode_example02
十二、链码实例化
12.1 这行命令摘自于深蓝博客
$ peer chaincode instantiate -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n devincc -v 1.0 -c '{"Args":["init","a", "100", "b","200"]}' -P "OR ('Org1MSP.member','Org2MSP.member')"
12.2 该命令摘自于大众
$ peer chaincode instantiate -C mychannel -n ChaincodeName -v version -c '{"Args":["init","a",,"100","b","200"]}' -P "OR ('Org1Msp.member','Org2Msp.member')"
虽然这两行命令均可以,可是我测试,12.2这条命令不全,没法继续接下来的操做,因此咱们使用12.1的命令,由于好多Hyperledger的书籍上都是12.2的这条命令,不正确,因此不建议使用,《区块链开发实战 Hyperledger fabric关键技术与案列分析》《深度探索区块链 Hyperledger技术与应用》虽然都写了,可是直介绍了这一行命令,接下来书里没有说起其余接下来的操做,因此看不出来结果,可是咱们在第14步就会看到结果,不能用这条命令!
-C:后面的变量是通道名称
-v:后面的变量链码版本
-c:后面接的是初始化参数变量
-P:后面的变量指的是背书策略,列子中的策略只要是Org1或者Org2的任意一个成员的背书就能够了
-o:目前不清楚指定的概念
--tls:传输协议
--cafile:不清楚
1三、经过chaincode查询数据
$ peer chaincode query -C mychannel -n cj -c '{"Args":["query","a"]}'
-C:通道名称
-n 链码名字
-c 查询参数
1四、经过chaincode写入数据,这个命令将会建立新的block同时更新state DB
$ peer chaincode invoke -o orderer.example.com:7050 --tls $CORE_PEER_TLS_ENABLED --cafile /opt/gopath/src/github.com/hyperledger/fabric/peer/crypto/ordererOrganizations/example.com/orderers/orderer.example.com/msp/cacerts/ca.example.com-cert.pem -C mychannel -n cj -c '{"Args":["invoke","a","b","10"]}'
心法:fabric算是一个联盟链,能够拥有多个组织和最少一个Orderer排序服务节点,能够拥有多个peer(注解点,背书节点,记录节点),一个peer能够拥有多个channel,一个channel能够拥有多个chaincode
fabric--Org(>=1)
--peer(分不一样的做用,>=4)
--channel(>=1)
--chaincode(>=1)
--Orderer(至少一个)