超级账本Fabric教程(二):Docker的部署和安装(下)

链块学院
企业专栏
热度: 11459

能够在主机上创建出相互隔离的网络,通过命令行管理多个容器。

四、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配置文件

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
    区块链技术

文章声明:本文为MarsBit专栏作者作品,不代表MarsBit观点,版权归作者所有,如需转载,请提前联系作者!

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-

(未经授权,谢绝转载,版权最终解释权归链块学院所有。)


文章声明:本文为MarsBit专栏作者作品,不代表MarsBit观点,版权归作者所有,如需转载,请提前联系作者!

声明:本文为入驻“火星财经 专栏”作者作品,不代表火星财经官方立场。
转载请联系网页底部:内容合作栏目,邮件进行授权。授权后转载时请注明出处、作者和本文链接。未经许可擅自转载本站文章,将追究相关法律责任,侵权必究。
提示:投资有风险,入市须谨慎,本资讯不作为投资理财建议。
本内容旨在传递行业动态,不构成投资建议或承诺。