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实现文件分组复制到不同目录的例子
Jun 04 Python
详尽讲述用Python的Django框架测试驱动开发的教程
Apr 22 Python
Python中文竖排显示的方法
Jul 28 Python
Python读取网页内容的方法
Jul 30 Python
Python实现类似jQuery使用中的链式调用的示例
Jun 16 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
Python判断一个list中是否包含另一个list全部元素的方法分析
Dec 24 Python
python使用selenium实现批量文件下载
Mar 11 Python
PyQt5图形界面播放音乐的实例
Jun 17 Python
Python unittest单元测试openpyxl实现过程解析
May 27 Python
python 解决mysql where in 对列表(list,,array)问题
Jun 06 Python
Python实现验证码识别
Jun 15 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中session退出登陆问题
2014/02/27 PHP
学习php设计模式 php实现状态模式
2015/12/07 PHP
PHP内置加密函数详解
2016/11/20 PHP
使用composer安装使用thinkphp6.0框架问题【视频教程】
2019/10/01 PHP
BOOM vs RR BO5 第二场 2.14
2021/03/10 DOTA
初学JavaScript_03(ExtJs Grid的简单使用)
2008/10/02 Javascript
js身份证验证超强脚本
2008/10/26 Javascript
解读Bootstrap v4 sass设计
2016/05/29 Javascript
js中setTimeout的妙用--防止循环超时
2017/03/06 Javascript
详解webpack es6 to es5支持配置
2017/05/04 Javascript
react中的ajax封装实例详解
2017/10/17 Javascript
JavaScript递归函数解“汉诺塔”算法代码解析
2018/07/05 Javascript
mpvue性能优化实战技巧(小结)
2019/04/17 Javascript
vue Tab切换以及缓存页面处理的几种方式
2019/11/05 Javascript
ant design vue 表格table 默认勾选几项的操作
2020/10/31 Javascript
python下setuptools的安装详解及No module named setuptools的解决方法
2017/07/06 Python
python 动态加载的实现方法
2017/12/22 Python
树莓派实现移动拍照
2019/06/22 Python
Python3 全自动更新已安装的模块实现
2020/01/06 Python
PyTorch中 tensor.detach() 和 tensor.data 的区别详解
2020/01/06 Python
Python使用QQ邮箱发送邮件实例与QQ邮箱设置详解
2020/02/18 Python
Python实现代码块儿折叠
2020/04/15 Python
Python分类测试代码实例汇总
2020/07/23 Python
HTML5 Canvas 破碎重组的视频特效的示例代码
2019/09/24 HTML / CSS
Amara美国站:英国高端家居礼品网站,世界各地的奢侈家具品牌
2017/07/26 全球购物
天猫国际进口超市直营:官方直采,一站购齐
2017/12/11 全球购物
C#实现对任一张表的数据进行增,删,改,查要求,运用Webservice,体现出三层架构
2014/07/11 面试题
秘书专业自荐信范文
2013/12/26 职场文书
信息管理应届生求职信
2014/03/07 职场文书
2014年领导班子专项整治整改方案
2014/09/28 职场文书
2014幼儿园卫生保健工作总结
2014/12/05 职场文书
2015年乡镇信访工作总结
2015/04/07 职场文书
新郎结婚感言
2015/07/31 职场文书
redis限流的实际应用
2021/04/24 Redis
MySQL修炼之联结与集合浅析
2021/10/05 MySQL
什么是clearfix (一文搞清楚css清除浮动clearfix)
2023/05/21 HTML / CSS