一,安装vm ,centos系统 (测试步骤,正式搭建可以跳过)
1,在win10上,安装vm,centos8.5系统
vm下载(试用版本):https://www.vmware.com/cn/products/workstation-pro/workstation-pro-evaluation.html
centos8.5系统:
CentOS Mirrors List
2,下载完成之后打开虚拟机
3,点击创建新的虚拟机,然后按照提示,点击自定义安装
4,具体调整参照:(59条消息) 在windows上安装虚拟机以及安装centos7操作系统_dd_hello_的博客-CSDN博客_windows虚拟机安装centos
二,vm上安装docker(安装方式:使用存储库进行安装)
参考文档:安装 Docker Compose |Docker 文档
1,设置存储库
a , 安装软件包(提供实用程序)并设置稳定存储库
sudo yum install -y yum-utils
sudo yum-config-manager
–add-repo
https://download.docker.com/linux/centos/docker-ce.repo
提示: 添加仓库自:******
b ,可选:启用夜间或测试存储库
sudo yum-config-manager --enable docker-ce-nightly
不返回提示
c , 启用测试通道
sudo yum-config-manager --enable docker-ce-test
不返回提示
2,安装 Docker 引擎
a, 安装最新版本的 Docker 引擎和 containerd,或转到下一步以安装特定版本:
sudo yum install docker-ce docker-ce-cli containerd.io
报错:错误:
问题 1: 安装的软件包的问题 podman-3.3.1-9.module_el8.5.0+988+b1f0b741.x86_64
解决办法:
sudo yum install docker-ce docker-ce-cli containerd.io --allowerasing
提示:Docker CE Stable - x86_64 105 B/s | 1.6 kB 00:15
导入 GPG 公钥 0x621E9F35:
Userid: “Docker Release (CE rpm) docker@docker.com”
指纹: 060A 61C5 1B55 8A7F 742B 77AA C52F EB6B 621E 9F35
来自: https://download.docker.com/linux/centos/gpg
确定吗?[y/N]:
执行y
提示:完毕!
3 ,启动 Docker。
sudo systemctl start docker
4 , 通过运行映像验证 Docker 引擎是否已正确安装。
docker version
三,docker安装crawlab
参考文档:介绍 | Crawlab 中文文档
Docker · Crawlab文档
1,下载crawlab镜像:
a,创建 /etc/docker/daemon.json 文件 (docker-compose.yml也在该目录下)
sudo touch daemon.json
b,编辑文件
vi daemon.json
{“registry-mirrors”: [“https://registry.docker-cn.com”,“https://nrbewqda.mirror.aliyuncs.com”,“https://dmmxhzvq.mirror.aliyuncs.com”]}
c,重新加载daemon.json文件和重启docker
sudo systemctl daemon-reload
sudo systemctl restart docker
d, 拉取镜像crawlab
docker pull tikazyq/crawlab:latest
2 , 查看运行的程序
docker ps
3,安装docker-compose
安装python3:
pip3 install -U docker-compose
错误提示:Command “python setup.py egg_info” failed with error code 1 in /tmp/pip-build-tejcgxtb/cryptography/
解决:python -m pip install --upgrade pip
检查是否安装正常:
docker-compose --version
4, 拉取mongdb镜像
docker pull mongo
5,创建 docker-compose.yml
服务器配置参考文档:
(59条消息) 阿里云服务器 配置 crawlab lite,以及安装 Selenium+Chromedriver_gogobody的博客-CSDN博客
https://docs.crawlab.cn/zh/Installation/Docker.html
5.1单节点
注:正式搭建需要添加对外访问地址和端口
version: ‘3.3’
services:
master:
image: crawlabteam/crawlab
container_name: crawlab_master
restart: always
environment:
CRAWLAB_API_ADDRESS: “https://47.240.111.101:6799” # 后端api, 设置为 http://<宿主机IP>:<端口>,端口为映射出来的端口
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: mongo # mongo username
CRAWLAB_MONGO_PASSWORD: mongo # mongo password
CRAWLAB_MONGO_AUTHSOURCE: admin # mongo auth source
volumes:
- “/opt/crawlab/master:/data” # 持久化 crawlab 数据
ports:
- “6789:8080” # 开放 api 端口 nginx
- “6799:8000” # app
depends_on:
- mongo
mongo:
image: mongo:4.2
restart: always
environment:
MONGO_INITDB_ROOT_USERNAME: mongo # mongo username
MONGO_INITDB_ROOT_PASSWORD: mongo # mongo password
volumes:
- “/opt/crawlab/mongo/data/db:/data/db” # 持久化 mongo 数据
ports:
- “27017:27017” # 开放 mongo 端口到宿主机
运行:
docker-compose up -d
提示:
Creating docker_mongo_1 … done
Creating crawlab_master … done
注:云服务器上的安全端口是否开放
netstat -ano | grep 端口号
netstat -ntlp # 查看所有端口
运维在云服务器加上开安全端口
5.2 同一服务器多节点
参考最新文档:https://docs.crawlab.cn/zh/Installation/Docker.html
version: ‘3.3’
services:
master:
image: tikazyq/crawlab:latest
container_name: master
environment:
# CRAWLAB_API_ADDRESS: “http://47.240.111.101:6799” # backend API address 后端 API 地址. 适用于 https 或者源码部署
CRAWLAB_SERVER_MASTER: “Y” # whether to be master node 是否为主节点,主节点为 Y,工作节点为 N
CRAWLAB_MONGO_HOST: “mongo” # MongoDB host address MongoDB 的地址,在 docker compose 网络中,直接引用服务名称
CRAWLAB_REDIS_ADDRESS: “redis” # Redis host address Redis 的地址,在 docker compose 网络中,直接引用服务名称
ports:
- “6789:8080” # frontend port mapping 前端端口映射
depends_on:
- mongo
- redis
volumes:
- “/var/crawlab/log:/var/logs/crawlab” # log persistent 日志持久化
worker01:
image: tikazyq/crawlab:latest
container_name: worker01
environment:
CRAWLAB_SERVER_MASTER: “N”
CRAWLAB_MONGO_HOST: “mongo”
CRAWLAB_REDIS_ADDRESS: “redis”
depends_on:
- mongo
- redis
volumes:
- “/var/crawlab/log:/var/logs/crawlab” # log persistent 日志持久化
worker02:
image: tikazyq/crawlab:latest
container_name: worker02
environment:
CRAWLAB_SERVER_MASTER: “N”
CRAWLAB_MONGO_HOST: “mongo”
CRAWLAB_REDIS_ADDRESS: “redis”
depends_on:
- mongo
- redis
volumes:
- “/var/crawlab/log:/var/logs/crawlab” # log persistent 日志持久化
mongo:
image: mongo:latest
restart: always
#volumes:
# - “/opt/crawlab/mongo/data/db:/data/db” # make data persistent 持久化 ,添加卷会报权限问题
#ports:
# - “27017:27017” # expose port to host machine 暴露接口到宿主机
redis:
image: redis:latest
restart: always
volumes:
- “/opt/crawlab/redis/data:/data” # make data persistent 持久化
#ports:
# - “63799:6379” # expose port to host machine 暴露接口到宿主机
6, 登录 (ip替换为相应的ip地址)
url : http://47.240.111.101:6789/
user : admin
pw:admin
7,安装插件:消息推送+依赖安装