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 相关文章推荐
Linux 发邮件磁盘空间监控(python)
Apr 23 Python
Python编程实现的图片识别功能示例
Aug 03 Python
对Python中type打开文件的方式介绍
Apr 28 Python
python之cv2与图像的载入、显示和保存实例
Dec 05 Python
python操作日志的封装方法(两种方法)
May 23 Python
在macOS上搭建python环境的实现方法
Aug 13 Python
python实现在线翻译功能
Mar 03 Python
python接口自动化之ConfigParser配置文件的使用详解
Aug 03 Python
Python实现像awk一样分割字符串
Sep 15 Python
python zip()函数的使用示例
Sep 23 Python
告别网页搜索!教你用python实现一款属于自己的翻译词典软件
Jun 03 Python
Python3中最常用的5种线程锁实例总结
Jul 07 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实现文件安全下载
2006/10/09 PHP
汉字转化为拼音(php版)
2006/10/09 PHP
PHP笔记之:基于面向对象设计的详解
2013/05/14 PHP
php预定义变量使用帮助(带实例)
2013/10/30 PHP
ThinkPHP自动填充实现无限级分类的方法
2014/08/22 PHP
详解php中反射的应用
2016/03/15 PHP
Laravel 5.5 异常处理 & 错误日志的解决
2019/10/17 PHP
JavaScript 学习笔记(十六) js事件
2010/02/01 Javascript
ajax与302响应代码测试
2013/10/23 Javascript
jQuery中delegate与on的用法与区别示例介绍
2013/12/20 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
js限制文本框只能输入整数或者带小数点的数字
2015/04/27 Javascript
Bootstrap基本插件学习笔记之Alert警告框(20)
2016/12/08 Javascript
Vue.2.0.5实现Class 与 Style 绑定的实例
2017/06/20 Javascript
JavaScript html5 canvas实现图片上画超链接
2017/10/20 Javascript
VUE+Element UI实现简单的表格行内编辑效果的示例的代码
2018/10/31 Javascript
详解vue-cli中使用rem,vue自适应
2019/05/06 Javascript
Vue作用域插槽实现方法及作用详解
2020/07/08 Javascript
[01:14:12]2018DOTA2亚洲邀请赛4.7 总决赛 LGD vs Mineski 第二场
2018/04/09 DOTA
Python的Django框架中自定义模版标签的示例
2015/07/20 Python
Python获取SQLite查询结果表列名的方法
2017/06/21 Python
Python基于Pymssql模块实现连接SQL Server数据库的方法详解
2017/07/20 Python
Python实现识别手写数字 简易图片存储管理系统
2018/01/29 Python
pandas Dataframe行列读取的实例
2018/06/08 Python
Python中pandas dataframe删除一行或一列:drop函数详解
2018/07/03 Python
jupyter notebook 增加kernel教程
2020/04/10 Python
HTML5新增的表单元素和属性实例解析
2014/07/07 HTML / CSS
应届毕业生就业自荐信
2013/10/26 职场文书
2014年优秀班主任工作总结
2014/12/16 职场文书
营销计划书
2015/01/17 职场文书
撤诉申请书法院范本
2015/05/18 职场文书
离婚代理词范文
2015/05/23 职场文书
2020年元旦祝福语录,总有适合你的
2019/12/31 职场文书
MySql 缓存查询原理与缓存监控和索引监控介绍
2021/07/02 MySQL
Nginx开源可视化配置工具NginxConfig使用教程
2022/06/21 Servers