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 相关文章推荐
pyqt4教程之实现半透明的天气预报界面示例
Mar 02 Python
Python计算程序运行时间的方法
Dec 13 Python
python 设置文件编码格式的实现方法
Dec 21 Python
python中文编码与json中文输出问题详解
Aug 24 Python
Python pyinotify模块实现对文档的实时监控功能方法
Oct 13 Python
Python选择网卡发包及接收数据包
Apr 04 Python
Python自动化完成tb喵币任务的操作方法
Oct 30 Python
matplotlib绘制多个子图(subplot)的方法
Dec 03 Python
对python中 math模块下 atan 和 atan2的区别详解
Jan 17 Python
Python3.7将普通图片(png)转换为SVG图片格式(网站logo图标)动起来
Apr 21 Python
使用Python3 poplib模块删除服务器多天前的邮件实现代码
Apr 24 Python
python selenium xpath定位操作
Sep 01 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/11/26 PHP
PHP快速生成各种信息提示框的方法
2016/02/03 PHP
微信支付扫码支付php版
2016/07/22 PHP
Yii2框架配置文件(Application属性)与调试技巧实例分析
2019/05/27 PHP
Track Image Loading效果代码分析
2007/08/13 Javascript
jQuery select控制插件
2009/08/17 Javascript
js获取图片长和宽度的代码
2009/11/24 Javascript
javascript模版引擎-tmpl的bug修复与性能优化分析
2011/10/23 Javascript
用JQUERY增删元素的代码
2012/02/14 Javascript
select标记美化--JS式插件、后期加载
2013/04/01 Javascript
js原生appendChild的bug解决心得分享
2013/07/01 Javascript
JavaScript面试题(指针、帽子和女朋友)
2016/11/23 Javascript
如何学JavaScript?前辈的经验之谈
2016/12/28 Javascript
详解Vue前端生产环境发布配置实战篇
2019/05/07 Javascript
用Node写一条配置环境的指令
2019/11/14 Javascript
vue.js使用v-model实现父子组件间的双向通信示例
2020/02/05 Javascript
python requests 库请求带有文件参数的接口实例
2019/01/03 Python
Python类的继承用法示例
2019/01/31 Python
使用Django和Postgres进行全文搜索的实例代码
2020/02/13 Python
python 在threading中如何处理主进程和子线程的关系
2020/04/25 Python
Python request使用方法及问题总结
2020/04/26 Python
如何解决flask修改静态资源后缓存文件不能及时更改问题
2020/08/02 Python
详解pycharm2020.1.1专业版安装指南(推荐)
2020/08/07 Python
python 绘制国旗的示例
2020/09/27 Python
Python try except else使用详解
2021/01/12 Python
国际鲜花速递专家:Floraqueen
2016/11/24 全球购物
巴西美妆购物网站:Kutiz Beauté
2019/03/13 全球购物
伦敦最受欢迎的蛋糕店:Konditor & Cook
2019/11/01 全球购物
美国精品地毯网站:Boutique Rugs
2020/03/04 全球购物
银行门卫岗位职责
2013/12/29 职场文书
竞聘上岗演讲稿范文
2014/01/10 职场文书
垂直极限观后感
2015/06/08 职场文书
2016年学校党支部创先争优活动总结
2016/04/05 职场文书
创业计划书之都市休闲农庄
2019/12/28 职场文书
win10更新失败无限重启解决方法
2022/04/19 数码科技
MySQL实现字段分割一行转多行的示例代码
2022/07/07 MySQL