我的環境說明:
虛擬機:VMware 12.5.7
操作系統:CentOS 64 位
超級賬本:https://github.com/hyperledger/fabric-samples.git v1.0.0
1.安裝工具
1.1 安裝 git: yum install git
在執行git命令之前先執行以下命令git config --global core.autocrlf false
git config --global core.longpaths true
1.2 安裝 curl: yum install curl
1.3 安裝 golang:yum install golang
通過修改profile文件:vim /etc/profile
【/export PATH 找到設置PATH的行,添加】
export GOPATH=/usr/lib/golang
export PATH=$PATH:$GOPATH/bin
1.4 配置
vim /etc/selinux/config將SELINUX=enforcing改爲SELINUX=disabled
2.【安裝 Docker】
2.1 yum update (更新系統)
2.2 (docker安裝步驟)
2.2.1 docker安裝
(2.2.1.1)安裝倉庫
(a) 安裝yum-utils ,這樣我們就能使用yum-config-manager 設置Yum源。yum install yum-utils
(b) 執行以下命令,添加Yum源
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
(c) 【可選】執行以下命令,啓用“edge”倉庫。edge倉庫其實也包含在了docker.repo文件中了,但默認是禁用的
我們可使用以下命令啓用edge倉庫。
yum-config-manager --enable docker-ce-edge
如果想要再次禁用edge倉庫,可執行以下命令。
yum-config-manager --disable docker-ce-edge
(2.2.1.2)安裝Docker
(a)執行以下命令更新Yum的包索引yum makecache fast
(b) 安裝你想要的Docker版本(CE/EE)
Docker版本 命令
Docker CE sudo yum install docker-ce (免費)
Docker EE sudo yum install docker-ee
Docker從17.03開始分爲企業版與社區版,社區版並非閹割版,而是改了個名稱;企業版則提供了一些收費的高級特性。
EE版本維護期1年;CE的stable版本三個月發佈一次,維護期四個月;另外CE還有edge版,一個月發佈一次。
(2.2.1.3)安裝 yum -y install epel-release
(2.2.1.4)啓動Docker
systemctl start docker(2.2.1.5)驗證安裝是否正確
docker run hello-world(2.2.1.6)升級Docker(忽略)
yum makecache fast卸載Docker
yum remove docker docker-common container-selinux docker-selinux
(2.2.2)啓動,systemctl start docker.service
(2.2.3)開機啓動,systemctl enable docker.service
(2.2.4)幫助,docker --help
(2.2.5)概要信息,docker info
(2.2.6)鏡像查看,docker images
(2.2.7)容器查看,即進程查看,docker ps -a
2.3 下載:docker-compose :
curl -L https://github.com/docker/compose/releases/download/1.14.0/docker-compose-`uname -s`-`uname-m` > /usr/local/bin/docker-compose
2.4 授權:sudo chmod +x /usr/local/bin/docker-compose
2.5 測試安裝:docker-compose --version
3.安裝node
3.1 安裝編譯環境:yum install gcc-c++
3.2 安裝nvm
curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash或者
wget -qO- https://raw.githubusercontent.com/creationix/nvm/v0.31.1/install.sh | bash
執行 : source ~/.bash_profile
可使用nvm --version 命令檢查nvm是否安裝成功
3.3 安裝node
a.查看可以安裝的node版本nvm list-remote
b.安裝想要安裝版本的node,(例如:)
nvm install v6.11.1
c. 查看版本號(驗證是否安裝成功)
node -v (出現版本號 大功告成)
npm -v
3.4 配置環境變量
which node (查看 node 安裝路徑)修改profile文件:
vim /etc/profile
export NODE_HOME=/root/.nvm/versions/node/v6.11.1 (到版本號即可)
export PATH=$NODE_HOME/bin:$PATH
4.測試安裝nginx
(4.1)下載鏡像,docker pull nginx(4.2)啓動容器,docker run -d -p 8080:80 nginx
把容器內的nginx的80端口,映射到當前服務器的8080端口,
當前服務器的ip是192.168.1.120, (ifconfig-查詢IP)
瀏覽器輸入http://192.168.1.120:8080/,就可以看到nginx已啓動,
(4.3)再啓動多一個容器,docker run -d -p 8081:80 nginx
瀏覽器輸入http://192.168.1.120:8081/,就可以看到另外一個nginx已啓動
也可以通過curl 127.0.0.1:8081 來測試是否打開相應端口
(4.4)到這裏就能體現出Docker部署應用和傳統部署應用的區別了,
傳統部署的話,需要人工拷貝多一份nginx,再配置端口,
而Docker部署的話,在已製作好的鏡像基礎上,一條命令就可以部署一個新的應用
5.刪除測試的nginx
(5.1)docker ps -a 可以顯示容器id(5.2)docker stop 73d5debfde26 停止容器
(5.3)docker rm 73d5debfde26 刪除容器
6.指定容器nginx的參數
docker run --name nginx-001 -d -p 8081:80 -v /home/docker/nginx/html:/usr/share/nginx/html nginx說明:-p 參數是把 宿主的8081端口映射到容器的80端口
這裏要注意-v是數據卷,可以主機和容器之間共享/home/Docker/nginx/html這個目錄,
在容器裏面就是/usr/share/nginx/html。其實這就是我們的代碼目錄,
調試代碼就是靠共享目錄實現的,很方便!
可以使用curl 127.0.0.1:8081查看
7.修改容器裏面的配置文件
#進入容器docker exec -it nginx-001 bash
#安裝工具
apt-get update
apt-get install vim
#查看和修改nginx的配置信息
vim /etc/nginx/conf.d/default.conf (nginx配置)
8.在本地選擇好一個目錄,執行 git命令,下載【源碼】
git clone https://github.com/hyperledger/fabric-samples.gitcd fabric-samples
9.在本地選擇好一個目錄,執行以下命令,下載【二進制運行庫】
a.先進行一次ntp時間同步(確保萬無一失) ntpdate pool.ntp.orgb.開始下載源碼 curl -sSL https://goo.gl/iX9dek | bash
10.配置環境變量
參考(http://www.cnblogs.com/hust-chenming/p/4943268.html)我本地的配置爲 export PATH=/root/hyperledger/run-files/bin:$PATH
修改profile文件:
vim /etc/profile
【/export PATH //找到設置PATH的行】添加
export PATH=<path to download location>/bin:$PATH
重啓機器
安裝 yum install npm
11.在目錄fabric-samples中建立子目錄 first-network (忽略)
11.1 cd /root/hyperledger/fabric-samples/first-network ,進入該目錄11.2 直接使用first-samples自代示例直接運行
./byfn.sh -m generate
11.3 開啓網絡 ./byfn.sh -m up
11.4 關閉 ./byfn.sh -m down (不用執行)
12.開啓網絡配置
進入:cd /root/hyperledger/fabric-samples/fabcar執行: ./startFabric.sh
13.進入 cd /root/hyperledger/fabric-samples/fabcar
node ./query.js異常信息(1):
Error: Cannot find module 'fabric-client'
at Function.Module._resolveFilename (module.js:485:15)
at Function.Module._load (module.js:437:25)
at Module.require (module.js:513:17)
at require (internal/module.js:11:18)
at Object.<anonymous> (/root/hyperledger/fabric-samples/fabcar/query.js:11:11)
at Module._compile (module.js:569:30)
at Object.Module._extensions..js (module.js:580:10)
at Module.load (module.js:503:32)
at tryModuleLoad (module.js:466:12)
at Function.Module._load (module.js:458:3)
異常信息(1)解決辦法:
安裝: npm install
參考資料:
http://hyperledger-fabric.readthedocs.io/en/latest/samples.html
https://hyperledger-fabric.readthedocs.io/en/latest/write_first_app.html
https://github.com/hyperledger/fabric-samples
http://blog.csdn.net/remote_roamer/article/details/51916893
http://www.cnblogs.com/bjlhx/p/7121875.html
http://www.cnblogs.com/bjlhx/p/7195894.html
http://www.cnblogs.com/niconi/p/5609773.html