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实现方法
Nov 18 Python
Python 抓取动态网页内容方案详解
Dec 25 Python
Python实现设置windows桌面壁纸代码分享
Mar 28 Python
给Python的Django框架下搭建的BLOG添加RSS功能的教程
Apr 08 Python
python实现基本进制转换的方法
Jul 11 Python
python学生信息管理系统(完整版)
Apr 05 Python
python可视化爬虫界面之天气查询
Jul 03 Python
深入解析神经网络从原理到实现
Jul 26 Python
详解PyTorch手写数字识别(MNIST数据集)
Aug 16 Python
Python产生一个数值范围内的不重复的随机数的实现方法
Aug 21 Python
tensorflow 初始化未初始化的变量实例
Feb 06 Python
简单了解如何封装自己的Python包
Jul 08 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
特详细的PHPMYADMIN简明安装教程
2008/08/01 PHP
php文章内容分页并生成相应的htm静态页面代码
2010/06/07 PHP
PHP+iFrame实现页面无需刷新的异步文件上传
2014/09/16 PHP
php自定义错误处理用法实例
2015/03/20 PHP
thinkphp autoload 命名空间自定义 namespace
2015/07/17 PHP
php数据序列化测试实例详解
2017/08/12 PHP
解决Laravel 使用insert插入数据,字段created_at为0000的问题
2019/10/11 PHP
让whoops帮我们告别ThinkPHP6的异常页面
2020/03/02 PHP
PHP 实现 WebSocket 协议原理与应用详解
2020/04/22 PHP
Jquery下attr和removeAttr的使用方法
2010/12/28 Javascript
时间戳转换为时间 年月日时间的JS函数
2013/08/19 Javascript
Bootstrap基本插件学习笔记之模态对话框(16)
2016/12/08 Javascript
JS实现仿PS的调色板效果完整实例
2016/12/21 Javascript
浅谈js算法和流程控制
2016/12/29 Javascript
微信小程序商城项目之侧栏分类效果(1)
2017/04/17 Javascript
JS使用正则表达式获取小括号、中括号及花括号内容的方法示例
2018/06/01 Javascript
原生JS实现图片懒加载之页面性能优化
2019/04/26 Javascript
pageGroup.js实现分页功能
2019/07/27 Javascript
vue遍历对象中的数组取值示例
2019/11/07 Javascript
深入了解JS之作用域和闭包
2020/06/16 Javascript
浅析我对JS延迟异步脚本的思考
2020/10/12 Javascript
Vue向后台传数组数据,springboot接收vue传的数组数据实例
2020/11/12 Javascript
python实现简单的单变量线性回归方法
2018/11/08 Python
python如何导出微信公众号文章方法详解
2020/08/31 Python
如何使用 Python 读取文件和照片的创建日期
2020/09/05 Python
英国女性时尚品牌:Apricot
2018/12/04 全球购物
sealed修饰符是干什么的
2012/10/23 面试题
致共产党员倡议书
2014/04/16 职场文书
创业融资计划书
2014/04/25 职场文书
大学生就业自我推荐信
2014/05/10 职场文书
施工安全保证书
2015/05/09 职场文书
上级领导检查欢迎词
2015/09/30 职场文书
会计继续教育培训心得体会
2016/01/19 职场文书
Oracle 触发器trigger使用案例
2022/02/24 Oracle
PyTorch中的torch.cat简单介绍
2022/03/17 Python
微信小程序调用python模型
2022/04/21 Python