1.2 练习平台Steamboat
为了让读者能够按照书本所述内容进行练习,本书提供了一个练习平台(平台名为Steamboat),并将其打包成Docker镜像。该镜像包含了书中20多个示例,读者可以使用线上练习平台(详见www.porters.vip),也可以通过本节指引在个人计算机或云服务器上搭建练习平台。
本节中,我们就来学习Docker和Steamboat的安装及使用。
1.2.1 安装 Docker
Docker是一个用Go语言编写的开源的应用容器引擎,具有轻量、便捷、低开销等优点。开发者可以将应用和对应的运行环境包装到一个可移植的容器中,并发布到任何装有Docker的机器上。本书配套的练习平台Steamboat和书中所用的异步渲染服务Splash都是Docker镜像,所以我们有必要了解Docker的相关知识和基本操作。
相关链接
❑ Docker官方网站:https://www.docker.com/。
❑ Docker安装介绍:https://docs.docker.com/install/。
Docker引擎分为如下两种。
❑ Docker Enterprise:简称Docker EE,专为企业开发和大型IT团队而设计。
❑ Docker Community Edition:简称Docker CE,适合Docker新手和小型团队,共有3个版本。
■ Stable版,即稳定版
■ Test版,即测试版
■ Nightly版,即最新版
本书所选的Docker引擎和版本为Docker CE Stable。安装Docker CE之前,需要设置Docker存储库,对应的命令如下:
$ sudo apt-get update
在安装过程中,需要允许apt通过HTTPS协议使用存储库,对应的设置命令如下:
$ sudo apt-get install \ apt-transport-https \ ca-certificates \ curl \ gnupg-agent \ software-properties-common
接着添加Docker官方的GPG密钥,对应命令如下:
$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
确认密钥添加成功的命令如下:
$ sudo apt-key fingerprint 0EBFCD88
命令执行后,终端给出以下提示:
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版本的存储库,对应命令如下:
$ sudo add-apt-repository \ "deb [arch=amd64] https://download.docker.com/linux/ubuntu \ $(lsb_release -cs) \ stable"
接着更新apt索引,对应命令如下:
$ sudo apt-get update
待索引更新完毕后,就可以安装Docker CE了,命令如下:
$ sudo apt-get install docker-ce docker-ce-cli containerd.io
该命令执行后,会安装最新版的Docker CE。
安装验证
Docker CE安装完成后,并不会给出类似“安装成功”的提示。为了确认安装成功并确保Docker CE正常运行,我们可以通过运行hello-world镜像进行验证,对应命令如下:
$ sudo docker run hello-world
命令执行后,终端给出以下提示:
Hello from Docker! This message shows that your installation appears to be working correctly.
提示中出现的Hello from Docker字样就说明Docker CE正常运行。
1.2.2 安装 Steamboat
Steamboat由以下3个Docker镜像组成。
❑ steamboat-part1,版本号为sp1,包含练习平台导航页和大部分示例。
❑ 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,当我们需要启动镜像时,就会用到它。
每个镜像开放了不同的端口,对应的端口列表如下。
❑ sp1:80、8090、8205、8207。
❑ sp2:8202。
❑ sp3:8206。
运行镜像时,需要为端口设置映射。例如运行sp2时,需要将宿主机的端口映射到8202,对应命令如下:
$ sudo docker run -d -p 8202:8202 0487eb7998d9
启动多个镜像时,就要运行多条命令,而且还需要设置端口映射,颇为麻烦。我们可以编写一个shell脚本runp.sh完成这些工作,其内容如下(要注意的是,每行命令最后面的字符串是IMAGE ID。ID的值有可能发生变化,这里需要填写实际的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
当我们需要启动Steamboat时,只需在终端执行sh runp.sh命令,便可以在浏览器中输入http://localhost访问练习平台页面了。
1.2.3 Steamboat 使用说明
Steamboat首页包括示例导航和快速索引两个部分。读者可以根据快速索引找到本书对应章节的示例,如图1-16所示。
图1-16 快速索引
点击对应的下拉菜单,即可找到该节中对应的示例。如图1-17所示,该导航根据示例编号按升序排序。
图1-17 示例导航
点击示例标签卡中的按钮后,浏览器就会在新窗口中打开对应的示例页面。