學習研究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(至少一個)