爬虫系列:Python代理IP池项目构建成镜像文件并上传到Docker hub

为什么要上传到Docker hub

随时随地 只需要 一条命令 docker pull spider_proxy_pool:v1 即可下载镜像

为什么要镜像?

只需确定好映射端口 一条命令即可快速启动容器,ip 随时取用

docker run --env DB_CONN=redis://:@ip:6379/0 -p 5000:5000 spider_proxy_pool:v1

这里使用一个我做爬虫时使用的一个代理ip池项目,源码已上传到GitHub

仓库地址:https://github.com/xuefeng365/spider_proxy_pool

项目里已经上传了 Dockerfile文件,可以跟进这个文件 ,直接在Linux系统构建即可。

image-20230215202037617

具体操作步骤如下:

# 任意选择下载路径
cd /usr/local/src/
# 克隆GitHub项目
git clone https://github.com/xuefeng365/spider_proxy_pool.git
# 进入项目根目录
cd spider_proxy_pool
# 构建镜像
sudo docker build -t spider_proxy_pool:v1 .
# 查看系统里所有镜像
docker images
# 启动容器:爬取并启动web服务。(ip换成你自己的公网ip即可,这里不对外)
docker run --env DB_CONN=redis://:@ip:6379/0 -p 5000:5000 spider_proxy_pool:v1
# 查看效果 -- 获取ip(只供作者自己使用。容器有可能随时停用),感兴趣可以自己制作
http://www.51automate.cn:5000/get/

sudo docker build -t spider_proxy_pool:v1 .解释:

我们利用build指令生成镜像,-t 参数指定了最终镜像的名字为spider_proxy_pool:v1

如果注意,会看到 docker build 命令最后有一个 .. 表示当前目录,这里是指将Dockerfile所在的当前目录作为构建上下文目录。

期间使用以下命令时,遇到权限被拒绝的问题

git clone https://github.com/xuefeng365/spider_proxy_pool.git

具体解决方法 》 查看系列文章 之 Linux系统克隆仓库时,权限被拒绝

镜像上传到docker hub

可以直接看这个把本地docker镜像上传到Docker Hub,亲测好用

  1. https://hub.docker.com注册个账号,注册可能需要外网,不太稳定。

  2. docker login 输入Docker Hub的用户名及密码

    docker login
    
  3. 查看镜像

    docker images
    
  4. 更改镜像名,不改会报错

    docker tag 镜像id docker hub账号名:上传到docker hub上的镜像名

    docker tag spider_proxy_pool:v1 xuefeng365/spider_proxy_pool:v1
    
  5. 上传镜像,执行命令

    docker push xuefeng365/spider_proxy_pool:v1
    

image-20230221110005650

拉取镜像文件,并启动服务

Redis 安装

  1. 利用docker安装redis

sudo docker pull redis
  1. 启动redis

sudo docker run -d --name redis -p 6379:6379 redis --requirepass
  1. 拉取镜像

docker pull xuefeng365/spider_proxy_pool:v1

docker run --env DB_CONN=redis://:@ip:6379/0 -p 5000:5000 xuefeng365/spider_proxy_pool:v1
  1. 查看效果(你的公网ip+5000端口,这里是假的) 222.222.222.222:5000