用Docker部署一个本身的可视化爬虫系统

Docker做为一种流行的容器技术,笔者也来玩玩,正好最近在开发一个可视化爬虫系统,Alpha版完成须要部署到服务器上,可是这个系统设计到的组建有点多,包括了Python三、Django、Pyspider、MySQL、MongoDB、Redis,好吧,涉及的框架确实有点多,Docker走起~node

为何这么多呢~~由于 用户数据库采用mysql、消息队列采用redis、存储数据采用mongodb、web框架采用Django、爬虫框架采用pyspider,不要问我为何不用一种数据库就好,我也不知道~~,好吧,开始搭建docker。python

环境:Centos7mysql

一、 安装dockerweb

sudo yum install dockerredis

 

二、 启动docker服务,设置开机启动sql

systemctl start docker.servicemongodb

systemctl enable docker.servicedocker

 

三、 安装基础镜像数据库

docker pull docker.io/mysqlbash

docker pull docker.io/redis

docker pull docker.io/mongo

docker pull pyspider

 

四、启动mysql服务

docker run --name 容器名称 -v 本地数据存储绝对目录路径:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=密码 -d mysql:latest

测试:

1)开启一个临时测试客户端

docker run -it --link 容器名称:mysql --rm mysql sh -c 'exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD"'

3)建立三个表

create database projectdb;

create database taskdb;

2)测试是否存在数据表

show databases;

 

五、启动mongo服务

docker run --name 容器名称 -v 本地数据存储绝对目录路径:/data/db -d mongo

测试:

1)开启一个临时测试客户端

docker run -it --link 容器名称:mongo --rm mongo sh -c 'exec mongo "$MONGO_PORT_27017_TCP_ADDR:$MONGO_PORT_27017_TCP_PORT/test"'

2)测试是否存在数据表

show dbs

 

六、启动redis服务

docker run --name 容器名称 -v 本地数据存储绝对目录路径:/data -d redis redis-server --appendonly yes

1)开启一个临时测试客户端

docker run -it --link 容器名称:redis --rm redis redis-cli -h redis -p 6379

 

七、开启一个pyspider容器

docker run -it --privileged --name 容器名 --link mongo容器名称:mongo --link redis容器名称:redis --link mysql容器名称:mysql -v 本地应用绝对目录路径:容器应用绝对目录路径 -expose 3000:3000 -expose 9000:9000 -d binux/pyspider bash

1)安装node

curl --silent --location https://rpm.nodesource.com/setup_6.x | bash -

2)复制文件

 

八、提交镜像

docker commit 容器名 镜像名

 

九、开启spiderman容器

docker run -it -P -d -v 本地应用绝对目录路径:容器应用绝对目录路径 --privileged --name 容器名 --link mongo容器名称:mongo --link redis容器名称:redis --link mysql容器名称:mysql 镜像名称 bash

1)设置语言环境变量

export LANG=zh_CN.UTF-8

2)启动pyspider

python3 run.py --message-queue redis://redis:6379/0 --projectdb mysql+projectdb://root:123456@mysql/projectdb --taskdb mysql+taskdb://root:123456@mysql/taskdb --resultdb mongodb+resultdb://mongodb  all --fetcher-num 5

好了,这样系统就部署好了,总体来看仍是很方便的~~,至少用起来也不算复杂,一堆组建堆起来的系统真是麻烦~~话说本身开发的跪着也要部署好呀

------------------------------------http://my.oschina.net/Kanonpy/-------------------------------------

--------------------------------------------------http://shikanon.com/-------------------------------------

相关文章
相关标签/搜索