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 09 Python
Python中无限元素列表的实现方法
Aug 18 Python
python分析nignx访问日志脚本分享
Feb 26 Python
Python 3.x读写csv文件中数字的方法示例
Aug 29 Python
Python pandas常用函数详解
Feb 07 Python
Python(Django)项目与Apache的管理交互的方法
May 16 Python
解决在pycharm中显示额外的 figure 窗口问题
Jan 15 Python
我喜欢你 抖音表白程序python版
Apr 07 Python
通过selenium抓取某东的TT购买记录并分析趋势过程解析
Aug 15 Python
使用python实现飞机大战游戏
Mar 23 Python
python爬取招聘要求等信息实例
Nov 20 Python
python实现web邮箱扫描的示例(附源码)
Mar 30 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
Yii2使用小技巧之通过 Composer 添加 FontAwesome 字体资源
2014/06/22 PHP
php函数重载的替代方法--伪重载详解
2015/05/08 PHP
PHP中抽象类、接口的区别与选择分析
2016/03/29 PHP
微信支付开发订单查询实例
2016/07/12 PHP
浅谈PHP实现大流量下抢购方案
2017/12/15 PHP
Javascript 获取链接(url)参数的方法[正则与截取字符串]
2010/02/09 Javascript
js 父窗口控制子窗口的行为-打开,关闭,重定位,回复
2010/04/20 Javascript
为超链接加上disabled后的故事
2010/12/10 Javascript
javascript延时加载之defer测试
2012/12/28 Javascript
JavaScript获取客户端计算机硬件及系统等信息的方法
2014/01/02 Javascript
JS实现FLASH幻灯片图片切换效果的方法
2015/03/04 Javascript
javascript表格的渲染组件
2015/07/03 Javascript
微信小程序 wxapp内容组件 text详细介绍
2016/10/31 Javascript
Vue2学习笔记之请求数据交互vue-resource
2017/02/23 Javascript
使用原生js写ajax实例(推荐)
2017/05/31 Javascript
如何检查一个对象是否为空
2019/04/11 Javascript
js 根据对象数组中的属性进行排序实现代码
2019/09/12 Javascript
[02:34]2016完美“圣”典风云人物:BurNIng专访
2016/12/10 DOTA
详解Python中的__new__()方法的使用
2015/04/09 Python
python字符串,数值计算
2016/10/05 Python
利用python对Excel中的特定数据提取并写入新表的方法
2018/06/14 Python
python bluetooth蓝牙信息获取蓝牙设备类型的方法
2019/11/29 Python
解决tensorboard多个events文件显示紊乱的问题
2020/02/15 Python
把Anaconda中的环境导入到Pycharm里面的方法步骤
2020/10/30 Python
为2021年的第一场雪锦上添花:用matplotlib绘制雪花和雪景
2021/01/05 Python
HTML5 placeholder属性详解
2016/06/22 HTML / CSS
浅析border-radius如何兼容IE
2016/04/19 HTML / CSS
在canvas上实现元素图片镜像翻转动画效果的方法
2018/03/20 HTML / CSS
巴西最好的男鞋:Rafarillo
2018/05/25 全球购物
2014党员整改措施思想汇报
2014/10/07 职场文书
2015年世界环境日活动总结
2015/02/11 职场文书
社区文明倡议书
2015/04/28 职场文书
如何做好工作总结!
2019/04/10 职场文书
Python实战之用tkinter库做一个鼠标模拟点击器
2021/04/27 Python
解决mysql的int型主键自增问题
2021/07/15 MySQL
SQL Server数据库备份和恢复数据库的全过程
2022/06/14 SQL Server