安装
最快安装 Crawlab 的方式是 [Docker]如果您对 Docker 不熟悉,您可以参考Docker官网,并将其安装在您本地.
原文链接为官方文档Crawlab 中文文档
一 快速开始
1拉取镜像
保证您已经安装好 Docker,并能够拉取 Crawlab 和 MongoDB 的镜像。
docker pull crawlabteam/crawlab
docker pull mongo
如果您还没安装 Docker Compose (opens new window),您可以执行以下命令。
pip install docker-compose
2配置 docker-compose.yml
创建配置文件并命名为 docker-compose.yml,然后输入以下内容。
version: '3.3'
services:
master:
image: crawlabteam/crawlab
container_name: crawlab_master
environment:
CRAWLAB_NODE_MASTER: Y
CRAWLAB_MONGO_HOST: mongo
ports:
- "8080:8080"
depends_on:
- mongo
mongo:
image: mongo:4.2
3启动 Crawlab
执行以下命令启动 Crawlab 以及 MongoDB。
docker-compose up -d
现在您可以打开浏览器并导航到 http://localhost:8080 并开始使用 Crawlab。
这是最小化配置的 Crawlab,您可以通过该演示环境来体验大多数功能。您 不能 在生产环节中使用该配置。
二 单节点部署
单节点部署(SND) 与 快速开始 中的配置类似,它通常用作演示或少量爬虫管理。在 SND 中,所有 Docker 容器 (包括 Crawlab 和 MongoDB) 都在单独一台机器上,即主节点(如上图)。
创建 docker-compose.yml 并输入如下内容。
version: '3.3'
services:
master:
image: crawlabteam/crawlab
container_name: crawlab_master
restart: always
environment:
CRAWLAB_NODE_MASTER: Y # Y: 主节点
CRAWLAB_MONGO_HOST: mongo # mongo host address. 在 Docker-Compose 网络中,直接引用 service 名称
CRAWLAB_MONGO_PORT: 27017 # mongo port
CRAWLAB_MONGO_DB: crawlab # mongo database
CRAWLAB_MONGO_USERNAME: username # mongo username
CRAWLAB_MONGO_PASSWORD: password # mongo password
CRAWLAB_MONGO_AUTHSOURCE: admin # mongo auth source
volumes:
- "/opt/crawlab/master:/data" # 持久化 crawlab 数据
ports:
- "8080:8080" # 开放 api 端口
depends_on:
- mongo
mongo:
image: mongo:4.2
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: username # mongo username
MONGO_INITDB_ROOT_PASSWORD: password # mongo password
volumes:
- "/opt/crawlab/mongo/data/db:/data/db" # 持久化 mongo 数据
ports:
- "27017:27017" # 开放 mongo 端口到宿主机
注意: 启动python爬虫用python spider.py 不要用python3 spider.py 否则会出现依赖未安装错误
执行 docker-compose up -d 并在浏览器中导航至 http://<your_ip>:8080,然后开始使用 Crawlab
总结:
Docker 部署有多种模式,不过其主流程是相似的。
- 安装 Docker (opens new window)和 Docker-Compose(opens new window)
- 拉取 Crawlab Docker 镜像(如果没有 MongoDB,也需要拉取)
- 创建
docker-compose.yml并进行配置 - 启动 Docker 容器
三 主要问题处理
1 执行启动命令:docker-compose up 出现错误ERROR: Encountered errors while bringing up the project 配置文件出错,或者镜像文件出错。 解决方案如下:
1 docker ps -a
2 docker stop ID
docker rm ID
3 docker images
4 docker -rmi ID
如果无法删除:
Error response from daemon: conflict: unable to delete 9364575df985 (must be forced) - image is being used by stopped container 087f3961826f
重复第一步,第二步
5 docker pull crawlabteam/crawlab
docker pull mongo
6 修改docker-compose.yml文件
7 启动docker-compose up -d
2 启动时端口被占用Error starting userland proxy: listen tcp4 0.0.0.0:27017: bind: address already in use ERROR: Encountered errors while bringing up the project. 解决方案如下:
1查看端口是否被占用
sudo lsof -i :27017
2如果被占用,直接kill掉
sudo kill -9 PID
3 未安装依赖
1开启爬虫命令用 python spider.py 而不是python3 spider.py
2启动docke安装依赖,在页面上安装比较慢
命令如下:
docker ps
docker exec -it 739e2bc8ece6 /bin/bash
pip3 install requests -i https://pypi.tuna.tsinghua.edu.cn/simple
安装以后在启动爬虫即可