基于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 容器 |