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爬虫常用的模块分析
Aug 29 Python
利用Python绘制MySQL数据图实现数据可视化
Mar 30 Python
Python黑魔法@property装饰器的使用技巧解析
Jun 16 Python
python使用knn实现特征向量分类
Dec 26 Python
Python操作配置文件ini的三种方法讲解
Feb 22 Python
Python使用pandas和xlsxwriter读写xlsx文件的方法示例
Apr 09 Python
详解python数据结构和算法
Apr 18 Python
python简单实现矩阵的乘,加,转置和逆运算示例
Jul 10 Python
python实现从ftp服务器下载文件
Mar 03 Python
Python爬虫requests库多种用法实例
May 28 Python
Python如何在单元测试中给对象打补丁
Aug 03 Python
python 调用Google翻译接口的方法
Dec 09 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的FTP学习(一)
2006/10/09 PHP
一段php加密解密的代码
2007/07/16 PHP
PHP简洁函数(PHP简单明了函数语法)
2012/06/10 PHP
PHP生成条形图的方法
2014/12/10 PHP
yii的入口文件index.php中为什么会有这两句
2016/08/04 PHP
PHP基于IMAP收取邮件的方法示例
2017/08/07 PHP
PHP实现简易计算器功能
2020/08/28 PHP
List the UTC Time on a Computer
2007/06/11 Javascript
文本框的字数限制功能jquery插件
2009/11/24 Javascript
jValidate 基于jQuery的表单验证插件
2009/12/12 Javascript
超级有用的13个基于jQuery的内容滚动插件和教程
2011/07/31 Javascript
利用JQuery制作符合Web标准的QQ弹出消息
2014/01/14 Javascript
jQuery使用animate创建动画用法实例
2015/08/07 Javascript
JS判断来路是否是百度等搜索索引进行弹窗或自动跳转的实现代码
2016/10/09 Javascript
微信小程序 122100版本更新问题解决方案
2016/12/22 Javascript
js选项卡的制作方法
2017/01/23 Javascript
微信小程序 开发之顶部导航栏实例代码
2017/02/23 Javascript
Nodejs下使用gm圆形裁剪并合成图片的示例
2018/02/22 NodeJs
详解解决Vue相同路由参数不同不会刷新的问题
2018/10/12 Javascript
记一次vue-webpack项目优化实践详解
2019/02/17 Javascript
layui table数据修改的回显方法
2019/09/04 Javascript
paramiko模块安装和使用(远程登录服务器)
2014/01/27 Python
Python+Django搭建自己的blog网站
2018/03/13 Python
python pandas读取csv后,获取列标签的方法
2018/11/12 Python
Python常见读写文件操作实例总结【文本、json、csv、pdf等】
2019/04/15 Python
使用Python函数进行模块化的实现
2019/11/15 Python
python数值基础知识浅析
2019/11/19 Python
django ajax发送post请求的两种方法
2020/01/05 Python
python如何通过pyqt5实现进度条
2020/01/20 Python
Selenium启动Chrome时配置选项详解
2020/03/18 Python
电气专业推荐信范文
2013/11/18 职场文书
拾金不昧的表扬信
2014/01/16 职场文书
社区党员先进事迹
2014/01/22 职场文书
上课打牌的检讨书
2014/02/15 职场文书
2014年安全保卫工作总结
2014/11/13 职场文书
Vue的列表之渲染,排序,过滤详解
2022/02/24 Vue.js