精通Hyperledger之docker學習筆記(1.2)

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

mac版docker教程

docker中文網站

相關文章
相關標籤/搜索