centos7.5 yum部署docker 进行分布式scrapy框架爬虫

一、环境安装配置

安装centos7.5镜像 官网下载。https://www.centos.org/download/ 

配置网络保证yum正常

安装依赖包yum-utils、 device-mapper-persistent-data、lvm2

sudo yum install -y yum-utils device-mapper-persistent-data lvm2

安装docker有多种方式,这里使用yum安装,因此需配置docker的yum源,运行以下命令

sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安装docker (默认为最新版  如需要安装特定版本,-XXX 加上版本号即可)

sudo yum install docker-ce

从官网docker-hub 安装 redis:alpine ,alpine 镜像

docker pull redis:alpine

docker pull alpine

编写Dockerfile文件构建自己的Python镜像 

必须要更新pip为最新版本

FROM alpine     
LABEL version="1.0"
LABEL description="my python"
RUN apk update
RUN apk add --no-cache python3 python3-dev gcc openssl-dev openssl libressl libc-dev linux-headers libffi-dev libxml2-dev libxml2 libxslt-dev 
RUN  pip3 install --upgrade pip
RUN  pip3 install Scrapy requests scrapy-redis
COPY  . /code
WORKDIR /code
CMD  ["python3", "version.py"]

编写测试version.py文件

print("初始版本v1")

创建docker镜像 并给定tag名

docker build -t scrapy-python .

docker tag imagesid scrapy-python:v1

docker rmi scrapy-python:latest

运行创建的镜像 看看测试效果

docker run --rm imagesid

编写Dockerfile 并进行redis测试

FROM alpine
LABEL version="1.0"
LABEL description="my redis"
RUN apk --update add  redis && \
    rm -rf /var/cache/apk/*
#pass&remote
RUN  sed -i "s/^bind 127\.0\.0\.1.*/bind 0\.0\.0\.0/g" /etc/redis.conf \
    && sed -i "s/^daemonize yes/daemonize yes/g" /etc/redis.conf
EXPOSE 6379
CMD ["/usr/bin/redis-server" , "/etc/redis.conf"]

启动redis容器,用本地redis-cli测试连接 ping 出现“pong” 即表示测试通过。

docker run -d -p 6379:6379 XXXX

 

 到此 基础环境已部署完成

=================================================================================

二 、爬虫demo的编写

 

三 、scrapy框架 镜像的创建及运行

拷贝code 文件

编写Dockerfile文件,参考初始Python镜像Dockerfile文件,后面的命令有所不同,spider是自己的爬虫类名。

FROM alpine     
LABEL version="1.0"
LABEL description="my python"
RUN apk update
RUN apk add --no-cache python3 python3-dev gcc openssl-dev openssl libressl libc-dev linux-headers libffi-dev libxml2-dev libxml2 libxslt-dev 
RUN  pip3 install --upgrade pip
RUN  pip3 install Scrapy requests scrapy-redis
COPY  . /code
WORKDIR /code
ENTRYPOINT ['scrapy']
CMD  ["crawl", "spider"]

  重点 docker运行的时候容器之间是不能通信的,详情可百度docker的网络连接方法。--link  或者 --net  本文采用 --net

docker run --rm --net=host XXXX

master 和slave是一样的步骤,运行即可将爬虫的文件存放到docker redis服务器中,通过本地redis-cli可查看爬虫结果。至于之后的redis服务器中的数据存放到mysql或者mongodb数据库等等 可以通过数据卷方式加载存放到docker服务器目录。

 

注意一点:

本地的scrapy爬虫的scrapy框架的setting.py连接redis地址都是127.0.0.1  拷贝到docker中的时候要修改为docker服务器的ip地址,上述步骤才可以完整运行。

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值