【鏈塊技術53期】超級賬本Fabric教程(二): Docker的部署和安裝(下)
阿新 • • 發佈:2018-12-21
原文連結:超級賬本Fabric教程 Docker的部署和安裝(下)
本節分享超級賬本執行環境docker容器的搭建。
四、Docker compose
4.1 能夠在主機上創建出相互隔離的網路,通過命令列管理多個容器。
在mac和windows中都集成了compose工具,不用重新安裝。
在linux中的安裝方法:
- (1) 通過 pip 進行 安裝
sudo apt install python-pip sudo pip install docker-compose
- (2) 直接 下載 檔案
curl -L https:// github.com/ docker/ compose/releases/ download/ 1. 17. 1/ docker- compose-` uname -s`-` uname -m` -o /usr/ local/ bin/ docker- composechmod + x /usr/ local/ bin/ docker- compose
4.2 配置檔案
- Compose 採用 YAML 檔案 定義 Docker 容器 之間 的 依賴, 設定 環境 變數 和 檔案 的 持久 化。(檢視更多配置:https://docs.docker.com/compose/compose-file)
version: '2' services: orderer. example. com: container_ name: orderer. example. com image: hyperledger/ fabric- orderer environment: - ORDERER_ GENERAL_ LOGLEVEL= debug - ORDERER _ GENERAL_ LISTENADDRESS= 0. 0. 0. 0 - ORDERER_ GENERAL_ GENESISMETHOD= file - ORDERER _ GENERAL_ GENESISFILE=/ var/ var/ hyperledger/ orderer/ orderer. genesis. block - ORDERER_ GENERAL_ LOCALMSPID = OrdererMSP - ORDERER_ GENERAL_ LOCALMSPDIR=/ var/ hyperledger/ orderer/ msp # enabled TLS - ORDERER_ GENERAL_ TLS_ ENABLED= true - ORDERER_ GENERAL_ TLS_ PRIVATEKEY =/ var/ hyperledger/ orderer/ tls/ server. key - ORDERER_ GENERAL_ TLS_ CERTIFICATE=/ var/ hyperledger/ orderer/ tls/ server. crt - ORDERER_ GENERAL_ TLS_ ROOTCAS=[/ var/ hyperledger/ orderer/ tls/ ca. crt] working_ dir: /opt/ gopath/ src/ github. com/ hyperledger/ fabric command: orderer volumes: - ../channel- artifacts/ genesis. block:/ var/ hyperledger/ orderer/ orderer. genesis. block - ../crypto- config/ ordererOrganizations/ xample. com/ orderers/ orderer. example. com/ msp:/ var/ hyperledger/ orderer/ msp - ../ crypto- config/ ordererOrganizations/ example. com/ orderers/ orderer. example. com/ tls/:/ var/ hyperledger/ orderer/ tls ports: - 7050: 7050 peer0. org1. example. com:container_ name: peer0. org1. example. com extends: file: peer- base. yaml service: peer- base environment: - CORE_ PEER_ ID= peer0. org1. example. com - CORE_ PEER_ ADDRESS= peer0. org1. example. com: 7051 - CORE_ PEER_ CHAINCODELISTENADDRESS= peer0. org1. example. com: 7052 - CORE_ PEER_ GOSSIP_ EXTERNALENDPOINT= peer0. org1. example. com: 7051 - CORE_ PEER_ LOCALMSPID= Org1MSP volumes: - /var/ run/:/ host/ var/ run/ - ../crypto- config/ peerOrganizations/ org1. example. com/ peers/ peer0. org1. example. com/ msp:/ etc/ hyperledger/ fabric/ msp - ../crypto- config/ peerOrganizations/ org1. example. com/ peers/ peer0. org1. example. com/ tls:/ etc/ hyperledger/ fabric/ tls ports: - 7051: 7051 - 7052: 7052 - 7053: 7053
- docker_compose_config.png
常用命令
- 命令
- docker_compose_cmd.png
- 更多命令:https://docs.docker.com/compose/reference
4.3 映象
使用的映象如果在本地中不存在,docker 就會自動從 docker 映象倉庫中下載,預設是從 Docker Hub 公共映象源下載
- 本地映象
- 羅列映象 docker images
- ◆ REPOSITORY:表示映象的倉庫源
- ◆ TAG:映象的標籤
- ◆ IMAGE ID:映象ID
- ◆ CREATED:映象建立時間
- ◆ SIZE:映象大小
- 下載映象 docker pull
- 查詢映象 docker search
- 建立映象
- 如果下載的映象不能滿足需求,可以自主建立映象。
- 可以通過以下兩種方式:
- 1.從已經建立的容器中更新映象,並且提交這個映象。
- 2.使用 Dockerfile 指令來建立一個新的映象。
- 1.建立一個新的檔案命名為DockerFile
- 2.貼上以下內容到檔案中並儲存
FROM centos:6.7 MAINTAINER
Fisher "[email protected]"
RUN /bin/echo 'root:123456' |chpasswd
RUN useradd yumingvvv
RUN /bin/echo 'yumingvvv:123456' |chpasswd
RUN /bin/echo -e "LANG=\"en_US.UTF-8\"" >/etc/default/local
EXPOSE 22
EXPOSE 80
CMD /usr/sbin/sshd -D
FROM指明哪個映象源 RUN在映象內執行那些命令
- 3.執行構建命令
- docker build -t runoob/centos:6.7 .
- 引數說明:
-t :指定要建立的目標映象名 . :Dockerfile 檔案所在目錄
- 4.檢視建立好的映象docker images
- 更新映象
- 1.更新之前需要使用映象建立一個容器。
- docker run -t -i ubuntu:15.10 /bin/bash
- 2.在執行的容器內做一番修改之後,輸入exit退出這個容器。
- 比如執行更新命令:apt-get update
- 構建一個新的映象 docker build
- 更新之後通過docker commit提交修改後的版本。
- docker commit -m="has update" -a="runoob" e218edb10161 yumingvvv888/ubuntu:v2
- 引數說明:
- -m: 提交的描述資訊
- -a: 指定映象作者
- e218edb10161:容器ID
- yumingvvv888/ubuntu:v2:指定要建立的目標映象名
- 4.提交到cloud.docker.com的倉庫中(前提需要註冊docker id) docker push yumingvvv888/ubuntu:v2
- 安裝nginx映象
- 1.執行docker pull nginx
- 2.檢查是否下載完成docker images nginx
- 3.執行nginx docker run --name nginx6 -v /Users/apple/Documents/nginx/html:/ro -d -p 8086:80 nginx
- 引數說明:
- 1.-p 埠對映
- 2.-v 掛在本機路徑到容器中
- 4.瀏覽器中輸入localhost:8086既可看到nginx已經啟動
-END-