用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/-------------------------------------

相關文章
相關標籤/搜索