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

最新文章

  1. sed详细分析
  2. 8天掌握EF的Code First开发系列之2 简单的CRUD操作
  3. 【UER #1】[UOJ#12]猜数 [UOJ#13]跳蚤OS [UOJ#14]DZY Loves Graph
  4. delphi 2007 远程调试
  5. .net发邮件 附件文件名乱码
  6. dataset 用法(3)
  7. HDU 2675 Equation Again
  8. 数值类型中JDk的编译期检查和编译期优化
  9. [BZOJ1507] [NOI2003] Editor (splay)
  10. Spring JTA multiple resource transactions in Tomcat with Atomikos example
  11. php载入脚本的几种方式对比
  12. mongodb备份还原
  13. unresolved external symbol boost::throw_exception
  14. 第二天:Javascript事件
  15. C语言中的数组与指针
  16. HDU 4757 Tree 可持久化字典树 trie
  17. linux,chmod如何更改所有子目录的权限,要包括隐藏文件
  18. Linux入门第一天——环境搭建补充内容(xshell与虚拟机等操作)
  19. 洛谷P1266速度限制
  20. 【leetcode 简单】第四十九题 颠倒二进制位

热门文章

  1. 7.3 使用while 循环来处理列表和字典
  2. SoapUI substring
  3. vue的选项卡功能
  4. docker入门1---docker的简介和安装
  5. Fidder IOS抓包
  6. C语言-数组的深入学习
  7. 题解【[CQOI2017]小Q的棋盘】
  8. CI项目设计Redis队列
  9. mysql安装完之后,登陆后发现只有两个数据库
  10. EL表达式和JSTL(三)——EL表达式