Fabric2.0.0部署運(yùn)行test-network日記
Author:wts
Date:2020年2月27日
2020-2-27:
1惕澎、安裝Ubuntu(完成)
密碼是123456
因?yàn)榇疟P空間的原因氮块,將Ubuntu存儲(chǔ)在移動(dòng)硬盤里,方便后期移動(dòng)仅胞。
這個(gè)網(wǎng)址的環(huán)境是1.4,我們到時(shí)使用fabric官方路徑吧溺拱。
今天的目標(biāo)画畅,裝好ubuntu怔锌,golang寥粹,nodejs,curl等需要的軟件埃元。
推薦用apt代替apt-get
估計(jì)是要裝在移動(dòng)硬盤上的原因吧涝涤,對(duì)移動(dòng)硬盤又是一次考驗(yàn)。
2岛杀、Ubuntu 安裝curl(完成)
https://blog.csdn.net/songmingzhan/article/details/78876400
程序“curl”尚未安裝阔拳。 您可以使用以下命令安裝:sudo apt install curl?已經(jīng)提示很明確了,sudo apt install curl先更新一下
sudo?apt-get update
sudo?apt install curl
3楞件、Ubuntu安裝git(完成)
http://www.reibang.com/p/cc76129478ab
sudo apt-get?update
sudo apt-get?install git
設(shè)置Git
安裝Git之后建議做一些基礎(chǔ)設(shè)置衫生,例如設(shè)置一下你的用戶名與電子郵件等裳瘪,這些信息在提交代碼的時(shí)候都是必需的土浸。可以使用以下的命令:
git config --global?user.name "你的用戶名彭羹,例如github的賬號(hào)"
git config --global?user.email "你的郵箱黄伊,例如github中的郵件地址"
之后,就可以用git config --list來(lái)查看設(shè)置的信息派殷。
初始化倉(cāng)庫(kù)
在初始化倉(cāng)庫(kù)之前还最,可以先創(chuàng)建一個(gè)代碼存儲(chǔ)的文件俠,例如“git_test”毡惜,之后用git init來(lái)初始化拓轻,如下:
mkdir temp
cd temp
git init
初始化操作會(huì)在這個(gè)目錄中新建一個(gè)名為“.git”的目錄,相關(guān)的配置以及編輯信息均存儲(chǔ)在其中经伙。說(shuō)明一下扶叉,這個(gè)文件夾默認(rèn)隱藏,如果需要查看,可以用ls -a來(lái)查看枣氧。
4溢十、Ubuntu安裝docker和docker compose(完成)
http://www.reibang.com/p/cef32b054968
太復(fù)雜了。达吞。张弛。。有這么麻煩么酪劫。吞鸭。。覆糟。
好麻煩瞒大。。搪桂。
5透敌、Ubuntu安裝GO(完成)
vim ~/.bashrc
最后一行加上下面配置
export GOPATH=/usr/local/go
export PATH=$GOPATH/bin:$PATH
通過(guò)apt安裝的不在這里
?
有時(shí)候需要配置ubuntu安裝的軟件,一般安裝軟件都是使用apt-get install踢械。那么安裝完后酗电,軟件的安裝目錄在哪里呢,可執(zhí)行文件又放在哪里呢内列。
?
A撵术、下載的軟件的存放位置:/var/cache/apt/archives
?
B、安裝后軟件的默認(rèn)位置:/usr/share
?
C话瞧、可執(zhí)行文件位置:/usr/bin
?
D嫩与、配置文件位置:/etc
?
E、lib文件位置:/usr/lib
過(guò)程挺慢的交排,竟然還需要18分鐘划滋。。埃篓。
6处坪、Ubuntu安裝Node.js(完成)
https://blog.csdn.net/cgs1999/article/details/89703649
sudo add-apt-repository ppa:chris-lea/node.js
sudo apt-get update
sudo apt-get install nodejs
sudo apt install libssl1.0-dev nodejs-dev node-gyp npm
sudo npm config set registry https://registry.npm.taobao.org
sudo npm config list
sudo node -v
sudo npm -v
先到這里吧。
7架专、Ubuntu上不去git(完成不算太快同窘,也沒(méi)快哪去。部脚。)
Ubuntu上不去github:
https://www.cnblogs.com/chenxi188/p/10862503.html(這個(gè)鏈接里寫(xiě)的比較好)
第二步想邦,追加域名的IP地址
我們可以利用https://www.ipaddress.com/來(lái)獲得以下兩個(gè)GitHub域名的IP地址:
(1) github.com
(2) github.global.ssl.fastly.net
打開(kāi)網(wǎng)頁(yè)后,利用輸入框內(nèi)分別查詢兩個(gè)域名:
先試一下github.com(也可直接訪問(wèn)):http://github.com.ipaddress.com/#ipinfo?
在標(biāo)注的IP地址中委刘,任選一個(gè)記錄下來(lái)丧没。
再來(lái)是github.global.ssl.fastly.net(也可直接訪問(wèn)):http://github.global.ssl.fastly.net.ipaddress.com/#ipinfo?
將以上兩段IP寫(xiě)入Hosts文件中:
151.101.185.194?github.global.ssl.fastly.net192.30.253.112?github.com
解決連不上GitHub服傍,也ping不通
https://blog.csdn.net/believe_s/article/details/81539747
Ping不通,這時(shí)候骂铁,只需要在host文件里做些修改就可以吹零,首先,定位到路徑
C:\Windows\System32\drivers\etc
1找到host文件拉庵,右鍵-屬性-安全-編輯灿椅,選中當(dāng)前電腦登錄的用戶,給自己最高權(quán)限钞支,確認(rèn)茫蛹。
然后用記事本打開(kāi),在最后一行加:
192.30.253.113 github.com
192.30.252.131 github.com
185.31.16.185 github.global.ssl.fastly.net
74.125.237.1 dl-ssl.google.com
173.194.127.200 groups.google.com
192.30.252.131 github.com
185.31.16.185 github.global.ssl.fastly.net
74.125.128.95 ajax.googleapis.com
保存烁挟,再ping婴洼,發(fā)現(xiàn)速度杠杠的
ubuntu上設(shè)置
https://blog.csdn.net/wuzhong8809/article/details/84061323
通過(guò)修改/etc/hosts 強(qiáng)制捆綁域名和IP地址
下面通過(guò)將abc.com 的IP指定為 127.0.0.1 為例:
一、打開(kāi)/etc/hosts 文件撼嗓,在其中添加如下一行:
127.0.0.1 abc.com
保存退出柬采。
二、重啟網(wǎng)絡(luò)模塊
sudo /etc/init.d/networking restart
三且警、驗(yàn)證
>ping abc.com
PING abc.com (127.0.0.1) 56(84) bytes of data.
64 bytes from localhost (127.0.0.1): icmp_seq=1 ttl=64 time=0.092 ms
64 bytes from localhost (127.0.0.1): icmp_seq=2 ttl=64 time=0.084 ms
64 bytes from localhost (127.0.0.1): icmp_seq=3 ttl=64 time=0.077 ms
8粉捻、Ubuntu搭建ftp服務(wù)器
運(yùn)行:sudo apt-get install vsftpd命令,安裝VSFTP工具:
安裝好了之后斑芜,使用如下命令啟動(dòng)FTP服務(wù):
sudo systemctl start vsftpdsudo systemctl enable vsftpd
2.等待安裝完成肩刃,進(jìn)入配置文件目錄, cd /etc/
3. 將配置文件備份杏头, sudo cp vsftpd.conf vsftpd.conf.bak? 這是個(gè)人習(xí)慣盈包。
4.配置文件中主要有這幾項(xiàng)修改:
匿名用戶(就是可以直接登錄的)
anon_upload_enable=YES? #默認(rèn)是NO
anon_mkdir_write_enable=YES? #匿名登錄創(chuàng)建文件夾
anon_upload_enable=YES? #匿名登錄可以上傳
anon_other_write_enable=YES # 匿名登錄可寫(xiě)
其他還有一些local_enable 登錄賬號(hào)白名單,用戶白名單之類的以后再介紹醇王。
5.重啟ftp服務(wù)呢燥。 sudo /etc/init.d/vsftpd restart
登錄客戶端
ftp://xxx.xxx.xxx
這里登錄的路徑是服務(wù)器的/srv/ftp/
這里要求ftp文件夾是不可寫(xiě)的。否則會(huì)出錯(cuò)厦画。即 sudo chmod 555 /srv/ftp/.
————————————————
版權(quán)聲明:本文為CSDN博主「seVIIen」的原創(chuàng)文章疮茄,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明根暑。
原文鏈接:https://blog.csdn.net/cfycyf/article/details/79420588
9、Ubuntu部署基于Fabric的虛擬區(qū)塊鏈服務(wù)
https://blog.csdn.net/sinat_35119798/article/details/78518919
sudo curl -sSL
https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s
10徙邻、Docker中如何刪除image(鏡像)
http://yaxin-cn.github.io/page/2/
docker中刪除images的命令是docker rmi排嫌,但有時(shí)候執(zhí)行此命令并不能刪除images
[yaxin@ubox ~]$docker imagesREPOSITORY ?????????TAG ????????????????IMAGE ID ???????????CREATED ????????????VIRTUAL SIZEeg_sshd ????????????latest ?????????????ed9c93747fe1 ???????45 hours ago ???????329.8 MBCentOS65 ???????????latest ?????????????e55a74a32125 ???????2 days ago ?????????360.6 MB[yaxin@ubox ~]$docker rmi ed9c93747fe1Untagged: ed9c93747fe16627be822ad3f7feeb8b4468200e5357877d3046aa83cc44c6af[yaxin@ubox ~]$docker imagesREPOSITORY ?????????TAG ????????????????IMAGE ID ???????????CREATED ????????????VIRTUAL SIZE<none> ?????????????<none> ?????????????ed9c93747fe1 ???????45 hours ago ???????329.8 MBCentOS65 ???????????latest ?????????????e55a74a32125 ???????2 days ago ?????????360.6 MB
可以看出,image并沒(méi)有被刪除缰犁,只是他的tag被刪除了淳地,再次執(zhí)行docker rmi IMAGE_ID只會(huì)報(bào)錯(cuò)
[yaxin@ubox ~]$docker rmi ed9c93747fe1Error: image_delete: Conflict, ed9c93747fe1 wasn't deleted2014/03/22 15:58:27 Error: failed to remove one or more images
查看docker的幫助會(huì)發(fā)現(xiàn)有兩個(gè)與刪除有關(guān)的命令rm和rmi
rm Remove one or more containersrmi Remove one or more images
這里有兩個(gè)不同的單詞怖糊,images和container。其中images很好理解颇象,跟平常使用的虛擬機(jī)的鏡像一個(gè)意思伍伤,相當(dāng)于一個(gè)模版,而container則是images運(yùn)行時(shí)的的狀態(tài)遣钳。docker對(duì)于運(yùn)行過(guò)的image都保留一個(gè)狀態(tài)(container)扰魂,可以使用命令docker ps來(lái)查看正在運(yùn)行的container,對(duì)于已經(jīng)退出的container蕴茴,則可以使用docker ps -a來(lái)查看劝评。如果你退出了一個(gè)container而忘記保存其中的數(shù)據(jù),你可以使用docker ps -a來(lái)找到對(duì)應(yīng)的運(yùn)行過(guò)的container使用docker commit命令將其保存為image然后運(yùn)行倦淀。
回到之前的問(wèn)題蒋畜,由于image被某個(gè)container引用(拿來(lái)運(yùn)行),如果不將這個(gè)引用的container銷毀(刪除)撞叽,那image肯定是不能被刪除姻成。
所以想要?jiǎng)h除運(yùn)行過(guò)的images必須首先刪除它的container。繼續(xù)來(lái)看剛才的例子愿棋,
[yaxin@ubox ~]$docker ps -aCONTAINER ID ???????IMAGE ??????????????COMMAND ???????????????CREATED ????????????STATUS ?????????????PORTS ??????????????????NAMES117843ade696 ???????ed9c93747fe1 ???????/bin/sh -c /usr/sbin ??46 hours ago ???????Up 46 hours ????????0.0.0.0:49153->22/tcp ??test_sshd
可以看出ed9c93747fe1的image被117843ade696的container使用著佣渴,所以必須首先刪除該container
[yaxin@ubox ~]$docker rm 117843ade696Error: container_delete: Impossible to remove a running container, please stop it first2014/03/22 16:36:44 Error: failed to remove one or more containers
出現(xiàn)錯(cuò)誤,這是因?yàn)樵揷ontainer正在運(yùn)行中(運(yùn)行docker ps查看)初斑,先將其關(guān)閉
[yaxin@ubox ~]$docker stop 117843ade696117843ade696
[yaxin@ubox ~]$docker rm 117843ade696117843ade696[yaxin@ubox ~]$docker rmi ed9c93747fe1Deleted: ed9c93747fe16627be822ad3f7feeb8b4468200e5357877d3046aa83cc44c6afDeleted: c8a0c19429daf73074040a14e527ad5734e70363c644f18c6815388b63eedc9bDeleted: 95dba4c468f0e53e5f1e5d76b8581d6740aab9f59141f783f8e263ccd7cf2a8eDeleted: c25dc743e40af6858c34375d450851bd606a70ace5d04e231a7fcc6d2ea23cc1Deleted: 20562f5714a5ce764845119399ef75e652e23135cd5c54265ff8218b61ccbd33Deleted: c8af1dc23af7a7aea0c25ba9b28bdee68caa8866f056e4f2aa2a5fa1bcb12693Deleted: 38fdb2c5432e08ec6121f8dbb17e1fde17d5db4c1f149a9b702785dbf7b0f3beDeleted: 79ca14274c80ac1df1333b89b2a41c0e0e3b91cd1b267b31bef852ceab3b2044[yaxin@ubox ~]$docker imagesREPOSITORY ?????????TAG ????????????????IMAGE ID ???????????CREATED ????????????VIRTUAL SIZECentOS65 ???????????latest ?????????????e55a74a32125 ???????2 days ago ?????????360.6 MB
可以看出辛润,image已經(jīng)被刪除。
11见秤、修改docker images的名稱砂竖,刪除同名同id不同tag的鏡像
原創(chuàng)周子青最后發(fā)布于2018-05-11 15:22:24 閱讀數(shù) 15127 ?收藏
展開(kāi)
docker tag imageid name:tag正解。
docker tag 鏡像ID xxxx:xxxx
例子:
docker tag 899bd984 lyb/php:1.0
今天建立docker容器的時(shí)候由于疏忽鹃答,鏡像的名字輸錯(cuò)了乎澄,結(jié)果容器創(chuàng)建成功后,鏡像中出現(xiàn)兩個(gè)id相同的:
使用docker rmi?e4a35914679d刪除的時(shí)候執(zhí)行失敳馑ぁ:
Error response from daemon: conflict: unable to delete e4a35914679d (must be forced) - image is referenced in one or more repositories
提示應(yīng)該是該id有兩個(gè)本地文件置济,不能用id刪除。
所以我想刪除所有鏡像docker rmi $(docker images -q)锋八,出現(xiàn)下面錯(cuò)誤
Error response from daemon: conflict: unable to delete e4a35914679d (must be forced) - image is referenced in one or more repositories
后來(lái)在Stack Overflow刪看到使用repository和tag進(jìn)行操作的浙于,所以執(zhí)行docker rmi docker.io/redis:3.2
再次查詢的時(shí)候只剩下一個(gè)鏡像,刪除OK挟纱。
所以羞酗,可以使用repository:tag的組合來(lái)刪除特殊的鏡像。
————————————————
版權(quán)聲明:本文為CSDN博主「周子青」的原創(chuàng)文章紊服,遵循 CC 4.0 BY-SA 版權(quán)協(xié)議檀轨,轉(zhuǎn)載請(qǐng)附上原文出處鏈接及本聲明胸竞。
原文鏈接:https://blog.csdn.net/qq_37674858/article/details/80282068
12、使用docker安裝mysql
第一步:使用docker pull拉取docker hub倉(cāng)庫(kù)中mysql鏡像 (注意備注)
l
mysql鏡像版本如下:
命令:docker pull mysql:8.0
備注:docker pull默認(rèn)到官方參考拉取 ?mysql:8.0 ? 鏡像名:鏡像tag ? ??
(ctrl+c)可以取消下載
官方地址為國(guó)外地址安裝緩慢可進(jìn)行配置為國(guó)內(nèi)的加速鏡像参萄,具體操作見(jiàn)下面
第二步:修改鏡像文件拉取地址
命令:vi /etc/docker/daemon.json
備注:insert編輯內(nèi)容如下 ? ? ?并esc ?輸入:wq 保存退出??
{
"registry-mirrors":["http://f1361db2.m.daocloud.io"]
}
備注:國(guó)內(nèi)可用加速地址:
? ? ? ??https://registry.docker-cn.com
? ? ? ??http://hub-mirror.c.163.com
? ? ? ??https://3laho3y3.mirror.aliyuncs.com
? ? ? ??http://f1361db2.m.daocloud.io
? ? ? ??https://mirror.ccs.tencentyun.com
第三步:重啟docker重新進(jìn)行【第一步】安裝速度變快
命令:systemctl restart docker
第四步:查看鏡像安裝情況
命令:docker images
第五步:?jiǎn)?dòng)docker中鏡像
命令:docker run --name mysql8.0 -p 3307:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql:8.0
備注:--name服務(wù)啟動(dòng)別名設(shè)置 ?-p端口映射 宿主機(jī)端口:鏡像運(yùn)行端口 ?-d 鏡像名:tag 使用守護(hù)進(jìn)程模式啟動(dòng) -e:設(shè)置root帳號(hào)密碼
第六步:查看運(yùn)行的鏡像
命令:docker ps -a
第七步:進(jìn)入鏡像運(yùn)行mysql
命令:docker exec -it mysql8.0 /bin/bash
備注:exec docker進(jìn)入容器命令 ? -it 容器中服務(wù)別名 /bin/bash ? 表示命令行模式 ?與 -d 后臺(tái)守護(hù)進(jìn)行模式啟動(dòng) 形成兩種運(yùn)行方式 ??進(jìn)入容器中如圖所示變化如下
命令:cd /usr/bin
命令:mysql -u root -p
備注:在容器中進(jìn)入用戶目錄啟動(dòng)mysql輸入密碼連接成功
安裝成功
其他就正常操作mysql了卫枝。
13、大坑集錦?【推薦】HyperLedger Fabric環(huán)境搭建讹挎、測(cè)試及注意事項(xiàng) [詳盡指導(dǎo)] [親測(cè)有效]
https://www.cnblogs.com/X-knight/p/9511491.html
14校赤、Ubuntu開(kāi)啟telnet
Fabric-sample目前是運(yùn)行成功了。
目錄在/home/wts/fabric-samples下淤袜。
2020-2-28:
1痒谴、Fabric test-network的運(yùn)行
curl -sSL https://bit.ly/2ysbOFE | bash -s【此命令運(yùn)行不成功】
改成如下命令:
curl -sSL https://raw.githubusercontent.com/hyperledger/fabric/master/scripts/bootstrap.sh | bash -s【會(huì)安裝需要的bin目錄下的文件和docker中需要的iamge】
Bring up the test network:
#cd fabric-samples/test-network
#./network.sh up
#docker ps -a【可以看到docker中已經(jīng)運(yùn)行的鏡像】
#./network.sh createChannel 【默認(rèn)創(chuàng)建一個(gè)mychannel】
#./network.sh deployCC?-l java【java版本】
#./network.sh deployCC ???【go版本】
export PATH=${PWD}/../bin:${PWD}:$PATH
export PATH=/home/wts/fabricmyself/fabric-samples/bin:/home/wts/fabricmyself/fabric-samples:$PATH
export FABRIC_CFG_PATH=$PWD/../config/
export FABRIC_CFG_PATH=/home/wts/fabricmyself/fabric-samples/config
You can now set the environment variables that allow you to operate the peer CLI as Org1:
# Environment variables for Org1
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=${PWD}/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
export CORE_PEER_TLS_ENABLED=true
export CORE_PEER_LOCALMSPID="Org1MSP"
export CORE_PEER_TLS_ROOTCERT_FILE=/home/wts/fabricmyself/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt
export CORE_PEER_MSPCONFIGPATH=/home/wts/fabricmyself/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/users/Admin@org1.example.com/msp
export CORE_PEER_ADDRESS=localhost:7051
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile ${PWD}/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabcar --peerAddresses localhost:7051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles ${PWD}/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"changeCarOwner","Args":["CAR9","Dave"]}'
peer chaincode invoke -o localhost:7050 --ordererTLSHostnameOverride orderer.example.com --tls true --cafile /home/wts/fabricmyself/fabric-samples/test-network/organizations/ordererOrganizations/example.com/orderers/orderer.example.com/msp/tlscacerts/tlsca.example.com-cert.pem -C mychannel -n fabcar --peerAddresses localhost:7051 --tlsRootCertFiles /home/wts/fabricmyself/fabric-samples/test-network/organizations/peerOrganizations/org1.example.com/peers/peer0.org1.example.com/tls/ca.crt --peerAddresses localhost:9051 --tlsRootCertFiles /home/wts/fabricmyself/fabric-samples/test-network/organizations/peerOrganizations/org2.example.com/peers/peer0.org2.example.com/tls/ca.crt -c '{"function":"changeCarOwner","Args":["CAR9","Dave"]}'
Test-network運(yùn)行完畢。
好了铡羡,擼起袖子加油干吧积蔚。后面要理解、掌握的東西還很多烦周。