原文链接
区块链应用技术开发:超级账本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 等 多个 平台, 安装 文档 参考: 。
- 在 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
- 快速的交付和部署
- 方便迁移和扩展
- 更新管理方便
3.4与传统虚拟机的比较
3.5应用场景
- Web应用的自动化打包和发布
- 自动化测试和持续集成和发布
- 在服务型环境中部署和调整数据库或其他的后台应用
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