【鏈塊技術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/。
-
在 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 https://get.docker.com -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-