七叶笔记 » golang编程 » 「链块技术52期」超级账本Fabric教程 Docker的部署和安装(上)

「链块技术52期」超级账本Fabric教程 Docker的部署和安装(上)

原文链接

区块链应用技术开发:超级账本Fabric系列教程(二):本节分享超级账本运行环境 docker 容器的搭建。

点击区块链技术培训课程获取更多区块链技术学习资料。

一、目录

  • HyperLedger超级账本运行环境-Docker容器介绍
  • 目录
  • 推荐linux系统
  • 通过 虚拟机 安装ubuntu
  • Docker
  • 简介
  • 组成部分
  • 为什么用docker
  • 与传统虚拟机的比较
  • 应用场景
  • 优点
  • 场景示例
  • docker的版本
  • Docker的Hello world
  • 运行容器里的终端
  • 查看所有运行的容器 docker ps
  • 查看容器日志 docker logs 填入容器id
  • 停止容器 docker stop
  • 运行一个web应用
  • Docker compose
  • 能够在主机上创建出相互隔离的网络,通过命令行管理多个容器。在mac和windows中都集成了compose工具,不用重新安装。在linux中的安装方法:
  • 配置文件
  • 常用命令
  • 镜像
  • 使用的镜像如果在本地中不存在,docker 就会自动从 docker 镜像仓库中下载,默认是从 Docker Hub 公共镜像源下载

二、推荐linux系统

 CentOS Debian 、Fedora、Ubuntu等Linux系统,可以通过官方提供的脚本进行安装。docker的发展非常迅速,apt源的更新往往比较滞后。所以docker官网推荐的安装方式都是下载docker安装脚本安装。 推荐使用Ubuntu16.04
 

2.1通过虚拟机安装ubuntu

  • 虚拟机种类
  • Parallels Desktop
  • VMware
  • Virtualbox
  • 安装golang
  • 虚拟机网络配置

三、Docker

3.1简介

  • 安装环境:Docker (compose)。 名词解释: Docker 是一个开源的应用容器引擎,让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上。基于 Go 语言 并遵从Apache2.0协议开源。容器是完全使用沙箱机制,相互之间不会有任何接口(类似 iPhone 的 app),更重要的是容器性能开销极低。Docker通过对应用组件的封装、分发、部署、运行等生命周期的管理,达到应用组件级别的“一次封装,到处运行”。这里应用组件,即可以是Web应用,也可以是一套数据库服务,甚至是一个操作系统或编译器。
  • Docker 支持 Linux、 Mac、 Windows 等 多个 平台, 安装 文档 参考: 。
  1. 在 Linux 环境 下 Docker 的 安装 Ubuntu、 Debian、 CentOS 等 Linux 系统, 可以 通过 Docker 官方 提供 的 脚本 进行 安装:curl -sSL https:// get. docker. com | sh然后 把 用户 加入 到 docker 组, 非 root 用户 USER 可以 执行 docker 命令( 可能 需要 重新 登录 生效): sudo usermod -aG docker $ USER 如果 是 Ubuntu 或者 Debian 操作系统, 修改 Docker 的 配置文件/ etc/ default/ docker, 增加 Docker 的 socket 绑 定, 运行 在 Docker 中的 进程 才能 通过 映射 的 socket 调用 Docker 的 API 执行 镜像 编译 和 创建 容器 等 操作。
  2. DOCKER_ OPTS=”- s= aufs -r= true –api- cors- header=’*’ -H tcp:// 0. 0. 0. 0: 2375 -H unix:/// var / run/ docker. sock ” 接着, 重 启 Docker 服务 让 配置 生效:

sudo service docker start

3.2组成部分

  • 镜像(Image)
  • 容器(Container)
  • 仓库(Repository)

3.3为什么用docker

  1. 快速的交付和部署
  2. 方便迁移和扩展
  3. 更新管理方便

3.4与传统虚拟机的比较

3.5应用场景

  1. Web应用的自动化打包和发布
  2. 自动化测试和持续集成和发布
  3. 在服务型环境中部署和调整数据库或其他的后台应用

3.6优点

  • 简化流程

Docker 让开发者可以打包他们的应用以及依赖包到一个可移植的容器中,然后发布到任何流行的 Linux 机器上,便可以实现虚拟化。Docker改变了虚拟化的方式,使开发者可以直接将自己的成果放入Docker中进行管理。方便快捷已经是 Docker的最大优势,过去需要用数天乃至数周的 任务,在Docker容器的处理下,只需要数秒就能完成。

  • 镜像部署

比如 Docker 镜像;Docker 镜像中包含了运行环境和配置,所以 Docker 可以简化部署多种应用实例工作。比如 Web 应用、后台应用、数据库应用、大数据应用比如 Hadoop 集群、消息队列等等都可以打包成一个镜像部署。

  • 节省开支

一方面,云计算时代到来,使开发者不必为了追求效果而配置高额的硬件,Docker 改变了高性能必然高价格的思维定势。Docker 与云的结合,让云空间得到更充分的利用。不仅解决了硬件管理的问题,也改变了虚拟化的方式。

3.7场景示例

  • 传统开发流程

Traditional development process.png

  • docker开发流程

docker-development-process.png

3.8docker的版本

安装Docker CE

要安装Docker CE,需要以下64位Ubuntu版本中的一个:

  • Bionic 18.04 (LTS)
  • Artful 17.10
  • Xenial 16.04 (LTS)
  • Trusty 14.04 (LTS)

我们选用的是Ubuntu 16.04。Ubuntu 16.04版本无需安装额外的依赖包,可以直接安装。

1.使用管理员账号登录ubuntu 16.04系统,保证该管理员有root权限,或者可以执行sudo命令。

2.打开终端ctrl+alt+t

3.检查curl包有没有安装。

执行which curl

如果curl没有安装的话,更新apt源之后,安装curl包。

sudo apt-get update

sudo apt-get install curl

4.获得最新的docker安装包

curl -fsSL -o get-docker.sh

然后执行sudo sh get-docker.sh

成功之后会显示如下界面:

5.确认docker是否安装成功

sudo docker run hello-world

这个命令会下载一个测试用的镜像并启动一个容器运行它。

成功之后会显示:

6.添加用户组

sudo usermod -aG docker yumingvvv

7.修改配置文件

文件地址:etc/default/docker

使用编辑器修改如下配置

DOCKER_OPTS=”-s=aufs –r=true –api-cors-header=’*’ –H tcp://0.0.0.0:2375 –H unix:///var/run/docker.sock”

8.重启docker服务

sudo service docker start重启使配置生效。

安装步骤

Docker EE

3.9Docker的Hello world

docker run ubuntu:15.10 / bin /echo “Hello world”

docker: Docker 的二进制执行文件。

run:与前面的 docker 组合来运行一个容器。

ubuntu:15.10指定要运行的镜像,Docker首先从本地主机上查找镜像是否存在,如果不存在,Docker 就会从镜像仓库 Docker Hub 下载公共镜像。

/bin/echo “Hello world”: 在启动的容器里执行的命令

以上命令完整的意思可以解释为:Docker 以 ubuntu15.10 镜像创建一个新容器,然后在容器里执行 bin/echo “Hello world”,然后输出结果。

3.10运行容器里的终端

docker run -i -t ubuntu:15.10 /bin/bash

◆ -t:在新容器内指定一个伪终端或终端。

◆ -i:允许你对容器内的标准输入 (STDIN) 进行交互。

3.11查看所有运行的容器 docker ps

3.12查看容器日志 docker logs 填入容器id

3.13停止容器 docker stop

3.14运行一个web应用

docker pull training/webapp

docker容器中运行一个 Python Flask 应用来运行一个web应用。docker run -d -P training/webapp python app.py

参数说明:

-d:让容器在后台运行。

-P:将容器内部使用的网络端口映射到我们使用的主机上。

查看运行的容器docker ps

浏览器中输入地址 127.0.0.1:输入查询到的端口号

docker inspect 容器的id

docker port 容器的id

改变端口:docker run -d -p 5000:5000 training/webapp python app.py

查询某个id使用的端口

查询详细信息

点击查看更多区块链应用成功案例 ,区块链技术开发教程 。

本文完,获取更多资讯,敬请关注区块链工程师。

-END-

链块学院网课学习平台链接:

助教卫星:lkxy007

相关文章