Docker部署Python爬虫项目的方法步骤


Posted in Python onJanuary 19, 2020

1) 首先安装docker:

# 用 yum 安装并启动
yum install docker -y && systemctl start docker

2) 下载自定义镜像需要用到的基础镜像:

# 这里以centos7为例
docker pull centos:centos7

3) 基础镜像已经准备好了,接下来准备好需要部署的环境服务,以及python项目:

### 创建 dockerfile 文件
mkdir dockerfile && cd dockerfile
### 下载 python(这里以3.7为例)
wget https://www.python.org/ftp/python/3.7.3/Python-3.7.3.tgz
### 将 python 项目复制到此目录
cp ~/test.py .
### 以及 python 项目的依赖库
cp ~/requirements.txt .

4) 需要自定义docker镜像的大致内容准备好了,接下来编写dockerfile:

vim Dockerfile

### 以centos:centos7来作为基础镜像
FROM centos:centos7
### 下载编译需要用到的软件
RUN yum install -y gcc gcc-c++ autoconf automake libtool make zlib* libffi-devel
### 将dockerfile目录下的python-3.7.3.tgz复制到docker容器内
COPY Python-3.7.3.tgz /usr/local/src
### 编译安装 python
WORKDIR /usr/local/src
RUN tar -xf Python-3.7.3.tgz
WORKDIR Python-3.7.3
RUN ./configure --prefix=/usr/local/python37 && make && make install
ENV PATH /usr/local/python37/bin:$PATH
### 创建工作目录
RUN mkdir /spider
### 将python项目复制到 /spider工作目录下
ADD test.py /spider
ADD requirements.txt /spider
### 设置 /spider 为工作目录
WORKDIR /spider
### 下载 python 项目的依赖库
RUN pip3 install -i http://mirrors.aliyun.com/pypi/simple/ --trusted-host mirrors.aliyun.com -r requirements.txt
### 在创建个爬取的数据存放的目录,这个需要根据自己代码里面设置的目录来创建,例如:
VOLUME /data
### 最后一步,运行docker镜像时运行自己的python项目
### 可以多个参数: CMD ["python3","a","main.py"]
CMD ["python3","test.py"]

5) 接下来构建镜像:(就在此目录下运行)

### docker build -t 镜像名:版本号   镜像名:版本号 均为自定义  别忘了末尾的点“.”
docker build -t pythonspider:v1 .

6) 运行镜像:

### 通过 docker images命令就可以看到刚刚创建的镜像
docker images

### 运行
docker run -d --name spider -v /data:/data pythonspider:v1
### -d为后台运行,--name 后面设置容器名,-v 是目录共享,主机目录和docker容器内目录共享。创建dockerfile的时候,有这一句 VOLUME /data 就是作为共享目录使用的,“:”前的目录为主机目录,后面的目录为容器内目录。。。 最后一个参数 pythonspider:v1 镜像名

cd /data 
### 到此目录下你就会看到产生的数据

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python重试装饰器示例
Feb 11 Python
Python 元组(Tuple)操作详解
Mar 11 Python
python抓取网页图片示例(python爬虫)
Apr 27 Python
详解Python的Flask框架中生成SECRET_KEY密钥的方法
Jun 07 Python
Django 2.0版本的新特性抢先看!
Jan 05 Python
TensorFlow平台下Python实现神经网络
Mar 10 Python
tensorflow实现图像的裁剪和填充方法
Jul 27 Python
Python爬虫PyQuery库基本用法入门教程
Aug 04 Python
python求质数的3种方法
Sep 28 Python
python中删除某个元素的方法解析
Nov 05 Python
Django Form常用功能及代码示例
Oct 13 Python
如何将Pycharm中调整字体大小的方式设置为"ctrl+鼠标滚轮上下滑"
Nov 17 Python
Python Selenium参数配置方法解析
Jan 19 #Python
浅谈tensorflow中张量的提取值和赋值
Jan 19 #Python
python通过安装itchat包实现微信自动回复收到的春节祝福
Jan 19 #Python
使用 Python 处理3万多条数据只要几秒钟
Jan 19 #Python
Python openpyxl模块原理及用法解析
Jan 19 #Python
Python imutils 填充图片周边为黑色的实现
Jan 19 #Python
python opencv 实现对图像边缘扩充
Jan 19 #Python
You might like
利用PHP创建动态图像
2006/10/09 PHP
PHP简单系统查询模块代码打包下载
2008/06/07 PHP
phpmyadmin提示The mbstring extension is missing的解决方法
2014/12/17 PHP
基于JQuery实现相同内容合并单元格的代码
2011/01/12 Javascript
JavaScript中的this关键字介绍与使用实例
2013/06/21 Javascript
javascript实现checkbox复选框实例代码
2016/01/10 Javascript
jquery ztree异步搜索(搜叶子)实践
2016/02/25 Javascript
js+css实现回到顶部按钮(back to top)
2016/03/02 Javascript
原生javascript实现分享到朋友圈功能 支持ios和android
2016/05/11 Javascript
Bootstrap框架动态生成Web页面文章内目录的方法
2016/05/12 Javascript
JavaScript的ExtJS框架中数面板TreePanel的使用实例解析
2016/05/21 Javascript
js精准的倒计时函数分享
2016/06/29 Javascript
jQuery 选择器(61种)整理总结
2016/09/26 Javascript
使用SVG基本操作API的实例讲解
2017/09/14 Javascript
微信小程序的日期选择器的实例详解
2017/09/29 Javascript
关于vuejs中v-if和v-show的区别及v-show不起作用问题
2018/03/26 Javascript
JavaScript 点击触发复制功能实例详解
2018/11/02 Javascript
详解基于 Node.js 的轻量级云函数功能实现
2019/07/08 Javascript
详解Angular Karma测试的持续集成实践
2019/11/15 Javascript
[10:49]2014国际邀请赛 叨叨刀塔第二期为真正的电竞喝彩
2014/07/21 DOTA
举例讲解Python中的迭代器、生成器与列表解析用法
2016/03/20 Python
PyQt5打开文件对话框QFileDialog实例代码
2018/02/07 Python
celery4+django2定时任务的实现代码
2018/12/23 Python
Python字典底层实现原理详解
2019/12/18 Python
Python Pandas list列表数据列拆分成多行的方法实现
2020/12/14 Python
CSS3实现全景图特效示例代码
2018/03/26 HTML / CSS
英国领先的新鲜松露和最好的松露产品供应商:TruffleHunter
2019/08/26 全球购物
Vinatis德国:法国领先的葡萄酒邮购公司
2020/09/07 全球购物
小学教师的个人自我鉴定
2013/10/24 职场文书
财务会计实习报告体会
2013/12/20 职场文书
网络管理专业求职信
2014/03/15 职场文书
2015毕业寄语大全
2015/02/26 职场文书
史上最牛的辞职信
2015/02/28 职场文书
工伤事故赔偿协议书
2015/08/06 职场文书
2019年“红色之旅”心得体会1000字(3篇)
2019/09/27 职场文书
基于Apache Hudi在Google云构建数据湖平台的思路详解
2022/04/07 Servers