Docker部署Python爬虫项目的方法步骤

作者:_invoker 时间:2023-03-27 14:45:21 

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
### 到此目录下你就会看到产生的数据

来源:https://segmentfault.com/a/1190000021617187

标签:Docker,Python,爬虫
0
投稿

猜你喜欢

  • Python缓存方案优化程序性能提高数据访问速度

    2022-04-11 20:36:15
  • Django+Ajax异步刷新/定时自动刷新实例详解

    2023-11-29 11:28:15
  • ASP 隐藏下载地址及防盗链代码

    2011-02-26 11:17:00
  • 解决vue.js在编写过程中出现空格不规范报错的问题

    2024-04-27 16:18:05
  • MySQL窗口函数OVER使用示例详细讲解

    2024-01-16 15:56:56
  • PyTorch 可视化工具TensorBoard和Visdom

    2022-04-28 00:30:41
  • Python利用命名空间解析XML文档

    2021-10-06 05:45:32
  • python cv2图像质量压缩的算法示例

    2023-08-16 19:09:02
  • PyQt5 QSerialPort子线程操作的实现

    2023-08-21 13:07:28
  • Python实现arctan换算角度的示例

    2023-07-16 20:31:28
  • Mysql InnoDB多版本并发控制MVCC详解

    2024-01-23 16:46:25
  • 利用Python将图片批量转化成素描图的过程记录

    2022-08-21 09:53:59
  • asp连接各种数据库代码

    2008-03-11 11:16:00
  • keras 实现轻量级网络ShuffleNet教程

    2023-06-27 05:19:26
  • Python OpenCV简单的绘图函数使用教程

    2023-08-02 23:22:22
  • Python实现ElGamal加密算法的示例代码

    2023-05-23 15:25:58
  • SQLServer 设置单词首字母大写

    2024-01-12 20:14:41
  • python微信跳一跳系列之色块轮廓定位棋盘

    2022-10-18 04:33:22
  • Go语言学习之数组的用法详解

    2024-04-26 17:18:34
  • javascript下function声明一些小结

    2024-04-29 13:42:52
  • asp之家 网络编程 m.aspxhome.com