基于docker安装Crawlab
基于docker安装Crawlab
简介
基于Golang的分布式爬虫管理平台,支持多种编程语言以及多种爬虫框架.
环境介绍
os:Ubuntu 20.04 LTS
docker:19.03.12
安装部署
安装Docker-Compose
为了方便起见,我们用docker-compose的方式来部署。docker-compose是一个集群管理方式,可以利用名为docker-compose.yml的yaml文件来定义需要启动的容器,可以是单个,也可以(通常)是多个的。
1 | apt install python3-pip |
安装好 docker-compose 后,请运行 docker-compose ps 来测试是否安装正常。正常的应该是显示如下内容。
1 | Name Command State Ports |
这是没有 Docker 容器在运行的情况,也就是空列表。如果有容器在运行,可以看到其对应的信息。
安装crawlab
Crawlab的docker-compose.yml定义如下。
1 | version: '3.3' |
这里先定义了 master 节点和 worker 节点,也就是Crawlab的主节点和工作节点。master 和 worker 依赖于 mongo 和 redis 容器,因此在启动之前会同时启动 mongo 和 redis 容器。这样就不需要单独配置 mongo 和redis 服务了,大大节省了环境配置的时间。
其中,我们设置了Redis和MongoDB的地址,分别通过 CRAWLAB_REDIS_ADDRESS 和 CRAWLAB_MONGO_HOST 参数。CRAWLAB_SERVER_MASTER 设置为Y表示启动的是主节点(该参数默认是为N,表示为工作节点)。CRAWLAB_API_ADDRESS 是前端的API地址,请将这个设置为公网能访问到主节点的地址,8000是API端口。环境变量配置详情请见 配置章节,您可以根据自己的要求来进行配置。
⚠️注意: 在生产环境中,强烈建议您将数据库持久化,因为否则的话,一旦您的 Docker 容器发生意外导致关闭重启,您的数据将丢失。持久化的方法就是将上述 docker-compose.yml 模版中的关于持久化的代码取消注释就可以了。持久化的数据包括:MongoDB 数据库、Redis 数据库、日志。
安装完 docker-compose 和定义好 docker-compose.yml 后,只需要运行以下命令就可以启动Crawlab。
1 | docker-compose up -d |
同样,在浏览器中输入 http://localhost:8080 就可以看到界面。
以此方式安装的crawlab为分布式的,分为mongo/redis/master/worker四个容器。具体的架构及不同容器的功能可以在官方文档中查看。
在实际使用中,通过修改 docker-compose.yml 配置文件来对整个集群进行配置,相关配置项说明已经在注释中
如果需要启用多个worker,可以修改配置文件,增加一个worker即可。
更新/重启 Crawlab
当 Crawlab 有更新时,我们会将新的变更构建更新到新的镜像中。最新的镜像名称都是 tikazyq/crawlab:latest。而一个指定版本号的镜像名称为 tikazyq/crawlab:<version>,例如 tikazyq/crawlab:0.4.7 为 v0.4.7 版本对应的镜像。
如果您需要更新最新的版本的镜像,只需要执行以下代码。
1 | # 关闭并删除 Docker 容器 |

