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数据结构之Array用法实例
Oct 09 Python
详解python之简单主机批量管理工具
Jan 27 Python
python简单实现操作Mysql数据库
Jan 29 Python
Python实现合并同一个文件夹下所有txt文件的方法示例
Apr 26 Python
Python下opencv图像阈值处理的使用笔记
Aug 04 Python
python爬虫爬取幽默笑话网站
Oct 24 Python
Python函数的默认参数设计示例详解
Dec 01 Python
python 消除 futureWarning问题的解决
Dec 25 Python
全网首秀之Pycharm十大实用技巧(推荐)
Apr 27 Python
Python3爬虫中Ajax的用法
Jul 10 Python
基于python tkinter的点名小程序功能的实例代码
Aug 22 Python
聊聊python在linux下与windows下导入模块的区别说明
Mar 03 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中判断一个请求是ajax请求还是普通请求的方法
2011/06/28 PHP
PHP通过session id 实现session共享和登录验证的代码
2012/06/03 PHP
Zend Framework教程之Application和Bootstrap用法详解
2016/03/10 PHP
Laravel中基于Artisan View扩展包创建及删除应用视图文件的方法
2016/10/08 PHP
PHP 7.0新增加的特性介绍
2017/06/08 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP实现的简单路由和类自动加载功能
2018/03/13 PHP
PHP实现获取ip地址的5种方法,以及插入用户登录日志操作示例
2019/02/28 PHP
List the Stored Procedures in a SQL Server database
2007/06/20 Javascript
跨浏览器开发经验总结(三)   警惕“IE依赖综合症”
2010/05/13 Javascript
jQuery实现字符串按指定长度加入特定内容的方法
2015/03/11 Javascript
jquery输入数字随机抽奖特效的简单实现代码
2016/06/10 Javascript
深入剖析JavaScript面向对象编程
2016/07/12 Javascript
Angular.Js的自动化测试详解
2016/12/09 Javascript
微信小程序 数据交互与渲染实例详解
2017/01/21 Javascript
Zepto实现密码的隐藏/显示
2017/04/07 Javascript
bootstrap弹出层的多种触发方式
2017/05/10 Javascript
基于Axios 常用的请求方法别名(详解)
2018/03/13 Javascript
微信小程序结合mock.js实现后台模拟及调试
2019/03/28 Javascript
vue回到顶部监听滚动事件详解
2019/08/02 Javascript
vue框架中props的typescript用法详解
2020/02/17 Javascript
[02:10]三分钟回顾完美世界城市挑战赛
2019/01/24 DOTA
轻松实现TensorFlow微信跳一跳的AI
2018/01/05 Python
python操作excel的方法(xlsxwriter包的使用)
2018/06/11 Python
在Pycharm中项目解释器与环境变量的设置方法
2018/10/29 Python
Django 缓存配置Redis使用详解
2019/07/23 Python
python+openCV对视频进行截取的实现
2020/11/27 Python
Selenium 安装和简单使用的实现
2020/12/04 Python
美国儿童运动鞋和服装零售商:Kids Foot Locker
2017/08/05 全球购物
Linux不知道文件后缀名怎么判断文件类型
2014/08/21 面试题
审计班子对照检查材料
2014/08/27 职场文书
高中生学习计划书
2014/09/15 职场文书
对党的十八届四中全会的期盼
2014/10/17 职场文书
四风问题专项整治工作情况报告
2014/10/28 职场文书
创业计划书之物流运送
2019/09/17 职场文书
Nginx实现高可用集群构建(Keepalived+Haproxy+Nginx)
2021/05/27 Servers