docker 部署 crawlab过程和遇到的一些问题

本文使用的操作系统时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
  1. 上传爬虫
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

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值