投稿
超级账本Fabric教程(二):Docker的部署和安装(上)
链块学院
9天前
10234

    原文链接:超级账本Fabric教程(二):Docker的部署和安装(上)

    本节分享超级账本运行环境docker容器的搭建。

    一、推荐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 等 多个 平台, 安装 文档 参考: https://docs.docker-cn.com/。

  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 执行 镜像 编译 和 创建 容器 等 操作。
    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. 快速的交付和部署


  1. 方便迁移和扩展


  1. 更新管理方便

3.4与传统虚拟机的比较

区块链技术教程超 Docker的部署和安装 与传统虚拟机的比较_副本.png

3.5应用场景


  1. Web应用的自动化打包和发布


  1. 自动化测试和持续集成和发布


  1. 在服务型环境中部署和调整数据库或其他的后台应用

3.6优点


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


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


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

3.7场景示例

  • 传统开发流程

  • 区块链技术教程超 Docker的部署和安装 传统开发流程_副本.png

    • Traditional development process.png

  • docker开发流程
    区块链技术教程超 Docker的部署和安装 docker开发流程_副本.png

    • 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 https://get.docker.com -o get-docker.sh
      然后执行sudo sh get-docker.sh
      成功之后会显示如下界面:

    • 区块链技术教程超 Docker的部署和安装 成功后显示界面_副本.png

    • 5.确认docker是否安装成功
      sudo docker run hello-world
      这个命令会下载一个测试用的镜像并启动一个容器运行它。
      成功之后会显示:

    • 区块链技术教程超 Docker的部署和安装 成功之后显示_副本.png

    • 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-


004周末班+手机号.jpg

手.png

005学习路径+名称公众号.jpg

来源:链块学院

本文由布洛克专栏作者发布,不代表布洛克观点,版权归作者所有

——TheEnd——



关注“布洛克科技”

1538278595194158.jpg



内容合作

© 布洛克科技——领先的区块链社群媒体

豫ICP备18020747号-1         关于我们 | 版权声明 | 联系我们