1. 程式人生 > >【鏈塊技術52期】超級賬本Fabric教程(二):Docker的部署和安裝(上)

【鏈塊技術52期】超級賬本Fabric教程(二):Docker的部署和安裝(上)

原文連結:超級賬本Fabric教程(二):Docker的部署和安裝(上)

本節分享超級賬本執行環境docker容器的搭建。

 

一、目錄

HyperLedger超級賬本執行環境-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. 快速的交付和部署

  2. 方便遷移和擴充套件

  3. 更新管理方便

  4.  

3.4與傳統虛擬機器的比較

區塊鏈技術教程超 Docker的部署和安裝 與傳統虛擬機器的比較_副本.png

 

3.5應用場景

  1. Web應用的自動化打包和釋出

  2. 自動化測試和持續整合和釋出

  3. 在服務型環境中部署和調整資料庫或其他的後臺應用

 

3.6優點

  • 簡化流程

  1. Docker 讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然後釋出到任何流行的 Linux 機器上,便可以實現虛擬化。Docker改變了虛擬化的方式,使開發者可以直接將自己的成果放入Docker中進行管理。方便快捷已經是 Docker的最大優勢,過去需要用數天乃至數週的 任務,在Docker容器的處理下,只需要數秒就能完成。

  • 映象部署

  1. 比如 Docker 映象;Docker 映象中包含了執行環境和配置,所以 Docker 可以簡化部署多種應用例項工作。比如 Web 應用、後臺應用、資料庫應用、大資料應用比如 Hadoop 叢集、訊息佇列等等都可以打包成一個映象部署。

  • 節省開支

  1. 一方面,雲端計算時代到來,使開發者不必為了追求效果而配置高額的硬體,Docker 改變了高效能必然高價格的思維定勢。Docker 與雲的結合,讓雲空間得到更充分的利用。不僅解決了硬體管理的問題,也改變了虛擬化的方式。

  2.  

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-