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爬虫步骤-Docker部署Python爬虫项目的方法步骤相关推荐

  1. 【Python】使用Docker部署Python项目

    用Docker部署Python项目 0.源码目录 1.编写Dockerfile文件 2.Docker根据Dockerfile文件生成Docker镜像 3.将镜像运行在Docker容器中 众所周知,同一 ...

  2. docker 部署Python项目 以及dockerfile文件的编写

    Dockerfile文件详解:https://www.cnblogs.com/panwenbin-logs/p/8007348.html Docker的基本使用(部署python项目): https: ...

  3. centos7 docker端口_使用Docker部署Python应用

    0 引言 在linux系统部署Python应用需要安装较多依赖,在内网环境下十分繁琐,而且有时候还需要在其他服务器运行,则需要重复搭建环境和部署应用,因此本文介绍利用docker容器技术来部署.鉴于本 ...

  4. 史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!!

    史上最详细阿里云服务器上Docker部署War包项目 实战每一步都带详细图解!!! 部署jar 包方式: https://blog.csdn.net/weixin_45821811/article/d ...

  5. 快速使用 Docker 部署 Spring Boot 项目

    如今 Docker 的使用已经非常普遍,特别是在一线互联网公司,使用 Docker 技术可以帮助企业快速水平扩展服务,从而达到弹性部署业务的能力.在云服务概念兴起之后,Docker 的使用场景和范围进 ...

  6. docker部署博客项目

    docker 部署博客项目 发现很久没有写文章了,等我的博客完成,我应该也会继续写的 连接远程服务器 ssh root@xxxxxx yum更新一下 yum update 用来解压zip压缩包 yum ...

  7. 浅谈在centos中使用docker部署war包项目(jsp篇)

    ​ 在centos中使用docker部署war包项目(jsp篇) 一.环境的准备 二.Docker优点 1.简化程序 2.避免选择恐惧症 3.节省开支 三.Docker结构 1.Client( Doc ...

  8. vue项目打包部署到服务器,Vue项目打包部署到apache服务器的方法步骤

    vue项目在开发环境下,让项目运行起来,是通过npm run dev命令,原理是在本地搭建了一个express服务器. 但是在服务器上就不是这样的,必须要通npm run build命令来对整个项目进 ...

  9. svn更新maven项目报错_使用svn管理Maven项目的方法步骤

    0. 在svn服务器中新建一个仓库 在SVN服务器的安装目录下进入bin文件夹,双击VisualAVN Server.msc即可弹出VisualAVN Server窗口 先创建一个新的仓库,右键[Re ...

最新文章

  1. 美团面试失败(Java开发)
  2. laravel mysql注入_laravel中如何利用反射实现依赖注入
  3. PermissionError: [Errno 13] Permission denied: ‘name.pdf‘
  4. 首长!图灵方队请您检阅
  5. Missing artifact com.microsoft.sqlserver:sqljdbc4:jar:4.0
  6. hdu 1556 Color the ball
  7. 绝对震撼 7款HTML5动画应用及源码
  8. 嵊州职教中心计算机多少分数,嵊州中考考试分数线
  9. Leetcode之打印链接的倒数第K个节点
  10. java国际化——消息格式化+文本文件和字符集
  11. 归一化处理公式_数学建模中的数据处理——归一化处理
  12. PG修改表owner提示must be member of role “pg13“
  13. mfc globalalloc能分配多大空间_办公家具定制充分利用办公室空间,提高员工之间工作效率...
  14. Visual Studio附加调试进程时找不到
  15. Atitti.软件的一些理论补充 Atitti.软件的原理原则定律法则补充 目录 1.1. 分布式领域CAP理论, 1 1.2. 关系数据库的ACID模型拥有 高一致性 + 可用性 很难进行分区:
  16. 计算机学院微信公众平台,智慧校园管理,一个微信公众号搞定
  17. 最新出炉的Java面试题(2022亲身经历)
  18. 安装magicdrawUML出现的问题
  19. linux电子表格工具,Linux系统办公一条龙之电子表格Calc
  20. 新华三HCL链路聚合

热门文章

  1. php104.tmp,首页-kaka窝论坛-综合管理-细说PHP-kaka窝 - Powered by Discuz!
  2. 中望龙腾(广州)c++实习
  3. python爬虫(四)_urllib2库的基本使用
  4. Android单选中listview中的一项
  5. DBA最缺的不是技术
  6. http://www.raywenderlich.com/tutorials http://www.appcoda.com/tutorials/ http://www.entlib.net/
  7. 分部类和方法的学习以及在LINQ中的应用(原创)
  8. 常用技术指标与四大交易理论
  9. linux 实用命令 —— cut、tr、sort、touch
  10. matlab 可视化 —— 高级 api(montage)、insertObjectAnnotation、insertMaker