本文使用的操作系统时ubuntu
1、安装docker
可以参考该链接安装docker
2、拉取hello-world镜像测试
2.1 首先需要改修改/etc/docker/daemon.json 文件,因为docker服务器再国外,我们无法正常拉取镜像,所以就需要我们为docker设置国内阿里云的镜像加速器,不然拉取镜像的时候会报 Unable to find image 的错误。
cd /etc/docker
#创建daemon.json文件
sudo touch daemon.json
#写入以下内容
{
"registry-mirrors": ["https://alzgoonw.mirror.aliyuncs.com"]
}
2.2 重启docker
systemctl restart docker / service docker restart
2.3 镜像拉取
docker run hello-world
2.4 运行docker ps 就可以看到正在运行的docker镜像啦!
3. 安装Docker Compose
pip install docker-compose
查看docker-compose是否安装成功
docker-compose version
4. 拉取crawlab 镜像
3.1 拉取 Crawlab 和 MongoDB 的镜像
可以使用 docker search crawlab/mongo 查看docker hub上已经发布的镜像,选择自己想要下载的镜像,默认下载最新的
docker pull tikazyq/crawlab
docker pull mongo
3.2 配置 docker-compose.yml
创建文件
touch docker-compose.yml
在 docker-compose.yml输入以下内容
文件里面对应的image 要和自己拉取的 crawlab 和 mongo 镜像名一一对应,运行docker imags 查看自己已经拉取的镜像。container_name 是要启动的容器名字,这个随意命名。ports 是端口映射,本机端口:容器内端口 。
version: '3.3'
services:
master:
image: tikazyq/crawlab:latest
container_name: crawlab_panel
restart: always
environment:
CRAWLAB_SERVER_MASTER: "Y"
CRAWLAB_MONGO_HOST: "mongo"
ports:
- "7777:8080"
depends_on:
- mongo
mongo:
image: mongo:latest
restart: always
ports:
- "27003:27003"
5.检查端口是否开启
参考该地址检查配置的端口在本机是否开启 没开启的话,需要开启端口才能访问。开启后重启docker服务
systemctl restart docker / service docker restart
6.启动 Crawlab
docker-compose up -d
现在您可以打开浏览器并导航到 http://localhost:7777 并开始使用 Crawlab。
7. 第一次Crawlab上传爬虫
1、安装 CLI 命令行工具
pip3 install crawlab-sdk
2、登录获取Token
端口号使用的是 docker容器内crawlab的端口
crawlab login -u admin -a http://localhost:8080/api
上传爬虫
cd /app/spiders/crawler
> /app/spiders/crawler 是项目文件在的路径
crawlab upload
8 问题小计
8.1.在一次配置好后启动crawlab后, 启动docker-compose up -d 后在浏览能访问,但是一直是502。
在查看日志之后是redis启动不了的问题,可能是之前配置的redis啥的出了问题??。使用 docker-compose logs master查看日志。 这时重新拉取了redis 镜像,然后在docker-compose.yml重新输入以下内容
version: '3.3'
services:
master:
image: tikazyq/crawlab:latest
container_name: crawlab_panel
restart: always
environment:
CRAWLAB_SERVER_MASTER: "Y"
CRAWLAB_MONGO_HOST: "mongo"
CRAWLAB_REDIS_ADDRESS: "redis"
ports:
- "7777:8080"
depends_on:
- mongo
- redis
mongo:
image: mongo:latest
restart: always
ports:
- "27003:27003"
redis:
image: redis
restart: always
ports:
- "6379:6379"
再次启动docker-compose up -d 问题搞定。
8.2 在重启crawlab 容器后,有时会出现crawlab登录出现502的问题
这时需要进入容器内,登录获取token,重新获取认证,
端口号使用的是 docker容器内crawlab的端口 ,之后输入crawlab登录的密码 crawlab login -u admin -a http://localhost:8080/api
相关阅读
发表评论