- Python 3反爬蟲原理與繞過實(shí)戰(zhàn)
- 韋世東
- 1466字
- 2021-02-07 09:17:43
1.2 練習(xí)平臺Steamboat
為了讓讀者能夠按照書本所述內(nèi)容進(jìn)行練習(xí),本書提供了一個練習(xí)平臺(平臺名為Steamboat),并將其打包成Docker鏡像。該鏡像包含了書中20多個示例,讀者可以使用線上練習(xí)平臺(詳見www.porters.vip),也可以通過本節(jié)指引在個人計算機(jī)或云服務(wù)器上搭建練習(xí)平臺。
本節(jié)中,我們就來學(xué)習(xí)Docker和Steamboat的安裝及使用。
1.2.1 安裝 Docker
Docker是一個用Go語言編寫的開源的應(yīng)用容器引擎,具有輕量、便捷、低開銷等優(yōu)點(diǎn)。開發(fā)者可以將應(yīng)用和對應(yīng)的運(yùn)行環(huán)境包裝到一個可移植的容器中,并發(fā)布到任何裝有Docker的機(jī)器上。本書配套的練習(xí)平臺Steamboat和書中所用的異步渲染服務(wù)Splash都是Docker鏡像,所以我們有必要了解Docker的相關(guān)知識和基本操作。
相關(guān)鏈接
? Docker官方網(wǎng)站:https://www.docker.com/。
? Docker安裝介紹:https://docs.docker.com/install/。
Docker引擎分為如下兩種。
? Docker Enterprise:簡稱Docker EE,專為企業(yè)開發(fā)和大型IT團(tuán)隊而設(shè)計。
? Docker Community Edition:簡稱Docker CE,適合Docker新手和小型團(tuán)隊,共有3個版本。
■ Stable版,即穩(wěn)定版
■ Test版,即測試版
■ Nightly版,即最新版
本書所選的Docker引擎和版本為Docker CE Stable。安裝Docker CE之前,需要設(shè)置Docker存儲庫,對應(yīng)的命令如下:
$ sudo apt-get update
在安裝過程中,需要允許apt通過HTTPS協(xié)議使用存儲庫,對應(yīng)的設(shè)置命令如下:
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
接著添加Docker官方的GPG密鑰,對應(yīng)命令如下:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
確認(rèn)密鑰添加成功的命令如下:
$ sudo apt-key fingerprint 0EBFCD88
命令執(zhí)行后,終端給出以下提示:
pub rsa4096 2017-02-22 [SCEA] 9DC8 5822 9FC7 DD38 854A E2D8 8D81 803C 0EBF CD88 uid [ unknown] Docker Release (CE deb) <docker@docker.com> sub rsa4096 2017-02-22 [S]
這說明密鑰添加成功。然后添加Stable版本的存儲庫,對應(yīng)命令如下:
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
接著更新apt索引,對應(yīng)命令如下:
$ sudo apt-get update
待索引更新完畢后,就可以安裝Docker CE了,命令如下:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
該命令執(zhí)行后,會安裝最新版的Docker CE。
安裝驗證
Docker CE安裝完成后,并不會給出類似“安裝成功”的提示。為了確認(rèn)安裝成功并確保Docker CE正常運(yùn)行,我們可以通過運(yùn)行hello-world鏡像進(jìn)行驗證,對應(yīng)命令如下:
$ sudo docker run hello-world
命令執(zhí)行后,終端給出以下提示:
Hello from Docker! This message shows that your installation appears to be working correctly.
提示中出現(xiàn)的Hello from Docker字樣就說明Docker CE正常運(yùn)行。
1.2.2 安裝 Steamboat
Steamboat由以下3個Docker鏡像組成。
? steamboat-part1,版本號為sp1,包含練習(xí)平臺導(dǎo)航頁和大部分示例。
? steamboat-part2,版本號為sp2,包含示例12。
? steamboat-part3,版本號為sp3,包含示例3。
Steamboat鏡像存儲在阿里云容器鏡像倉庫中,其下載命令為:
$sudo docker pull registry.cn-hangzhou.aliyuncs.com/steamboat/steamboat:[鏡像版本號]
其中命令中的[鏡像版本號]即上方給出的sp1/sp2/sp3。鏡像下載命令如下:
$ sudo docker pull registry.cn-hangzhou.aliyuncs.com/steamboat/steamboat:sp1 $ sudo docker pull registry.cn-hangzhou.aliyuncs.com/steamboat/steamboat:sp2 $ sudo docker pull registry.cn-hangzhou.aliyuncs.com/steamboat/steamboat:sp3
我們可以通過如下命令檢查鏡像是否下載成功:
$ sudo docker images
此時控制臺會輸出如圖1-15所示的信息。

圖1-15 控制臺輸出
列表顯示sp1、sp2和sp3這3個鏡像,說明鏡像下載成功。列表中的IMAGE ID為鏡像ID,當(dāng)我們需要啟動鏡像時,就會用到它。
每個鏡像開放了不同的端口,對應(yīng)的端口列表如下。
? sp1:80、8090、8205、8207。
? sp2:8202。
? sp3:8206。
運(yùn)行鏡像時,需要為端口設(shè)置映射。例如運(yùn)行sp2時,需要將宿主機(jī)的端口映射到8202,對應(yīng)命令如下:
$ sudo docker run -d -p 8202:8202 0487eb7998d9
啟動多個鏡像時,就要運(yùn)行多條命令,而且還需要設(shè)置端口映射,頗為麻煩。我們可以編寫一個shell腳本runp.sh完成這些工作,其內(nèi)容如下(要注意的是,每行命令最后面的字符串是IMAGE ID。ID的值有可能發(fā)生變化,這里需要填寫實(shí)際的ID值,值可以通過docker images命令查看):
# sp1 sudo docker run -d -p 80:80 -p8090:8090 -p 8205:8205 -p 8207:8207 9b5cc6bd42d0 # sp2 sudo docker run -d -p 8202:8202 0487eb7998d9 # sp3 sudo docker run -d -p 8206:8206 5c75ec9ef2b6
當(dāng)我們需要啟動Steamboat時,只需在終端執(zhí)行sh runp.sh命令,便可以在瀏覽器中輸入http://localhost訪問練習(xí)平臺頁面了。
1.2.3 Steamboat 使用說明
Steamboat首頁包括示例導(dǎo)航和快速索引兩個部分。讀者可以根據(jù)快速索引找到本書對應(yīng)章節(jié)的示例,如圖1-16所示。

圖1-16 快速索引
點(diǎn)擊對應(yīng)的下拉菜單,即可找到該節(jié)中對應(yīng)的示例。如圖1-17所示,該導(dǎo)航根據(jù)示例編號按升序排序。

圖1-17 示例導(dǎo)航
點(diǎn)擊示例標(biāo)簽卡中的按鈕后,瀏覽器就會在新窗口中打開對應(yīng)的示例頁面。
- 簡單高效LATEX
- 區(qū)塊鏈架構(gòu)與實(shí)現(xiàn):Cosmos詳解
- Raspberry Pi for Secret Agents(Third Edition)
- INSTANT Weka How-to
- Hands-On C++ Game Animation Programming
- Internet of Things with Intel Galileo
- 深度學(xué)習(xí):算法入門與Keras編程實(shí)踐
- Java EE 8 Application Development
- RISC-V體系結(jié)構(gòu)編程與實(shí)踐(第2版)
- Advanced UFT 12 for Test Engineers Cookbook
- Python商務(wù)數(shù)據(jù)分析(微課版)
- Python數(shù)據(jù)可視化之美:專業(yè)圖表繪制指南(全彩)
- Instant Automapper
- Mastering Embedded Linux Programming
- Learning Kotlin by building Android Applications