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 09 Python
python 打印对象的所有属性值的方法
Sep 11 Python
python多进程中的内存复制(实例讲解)
Jan 05 Python
Python基于辗转相除法求解最大公约数的方法示例
Apr 04 Python
python实现图像检索的三种(直方图/OpenCV/哈希法)
Aug 08 Python
Django 自定义分页器的实现代码
Nov 24 Python
python super函数使用方法详解
Feb 14 Python
3分钟看懂Python后端必须知道的Django的信号机制
Jul 26 Python
python 基于selenium实现鼠标拖拽功能
Dec 24 Python
python爬虫基础之urllib的使用
Dec 31 Python
Python try except else使用详解
Jan 12 Python
写好Python代码的几条重要技巧
May 21 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中用于检测一个地理IP地址是否可用的代码
2012/02/19 PHP
深入理解PHP中的Session和Cookie
2013/06/21 PHP
PHP的时间戳与具体时间转化的简单实现
2016/06/13 PHP
PHP设计模式之建造者模式定义与用法简单示例
2018/08/13 PHP
PHP常见过waf webshell以及最简单的检测方法
2019/05/21 PHP
完美实现仿QQ空间评论回复特效
2015/05/06 Javascript
jquery实现简单手风琴菜单效果实例
2015/06/13 Javascript
nodejs初步体验篇
2015/11/23 NodeJs
js获取鼠标点击的对象,点击另一个按钮删除该对象的实现代码
2016/05/13 Javascript
原生js实现下拉框功能(支持键盘事件)
2017/01/13 Javascript
jquery平滑滚动到顶部插件使用详解
2017/05/08 jQuery
Node做中转服务器转发接口
2017/10/18 Javascript
从零开始搭建一个react项目开发
2018/02/09 Javascript
require.js 加载过程与使用方法介绍
2018/10/30 Javascript
JS集合set类的实现与使用方法示例
2019/02/01 Javascript
深入解读VUE中的异步渲染的实现
2020/06/19 Javascript
关于better-scroll插件的无法滑动bug(2021通过插件解决)
2021/03/01 Javascript
[04:03]2014DOTA2西雅图国际邀请赛 LGD战队巡礼
2014/07/07 DOTA
浅析Python中yield关键词的作用与用法
2016/11/29 Python
python使用socket创建tcp服务器和客户端
2018/04/12 Python
Python selenium实现微博自动登录的示例代码
2018/05/16 Python
解决使用pycharm提交代码时冲突之后文件丢失找回的方法
2018/08/05 Python
python3 小数位的四舍五入(用两种方法解决round 遇5不进)
2019/04/11 Python
完美解决jupyter由于无法import新包的问题
2020/05/26 Python
基于Python实现全自动下载抖音视频
2020/11/06 Python
IE滤镜与CSS3效果(详细整理分享)
2013/01/25 HTML / CSS
Canvas绘制浮动球效果的示例
2017/12/29 HTML / CSS
Html5之webcoekt播放JPEG图片流
2020/09/22 HTML / CSS
电子信息专业自荐书
2014/02/04 职场文书
置业顾问岗位职责
2014/03/02 职场文书
会计自荐信范文
2014/03/09 职场文书
秋天的怀念教学反思
2014/04/28 职场文书
2014领导班子“四风问题”对照检查材料思想汇报(执法局)
2014/09/21 职场文书
2015年小学一年级班主任工作总结
2015/05/21 职场文书
2016入党积极分子党校培训心得体会
2016/01/06 职场文书
Nginx部署vue项目和配置代理的问题解析
2021/08/04 Servers