卧槽!我写的 Docker 镜像下载量居然突破了一百万...

2024-05-15 12:18

本文主要是介绍卧槽!我写的 Docker 镜像下载量居然突破了一百万...,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

这是「进击的Coder」的第 365 篇技术分享

作者:崔庆才

来源:崔庆才丨静觅

阅读本文大概需要 6 分钟。

今天还是照常逛 GitHub,看到了之前写的一个代理池(https://github.com/Python3WebSpider/ProxyPool)项目的一条 Issue,他问我有没有构建好的代理池 Docker 镜像。

这个自然是有的,我之前构建好了放在 Docker Hub 了,准备顺手找找发一下给他。

然后我就打开了 Docker Hub 搜了一下,proxypool,结果你猜怎么着。

第一条结果就是我写的那个镜像,如图所示:

排名居然是第一位。

然后我又看了下下载量,这个数让我震惊了。。。

1M+

一百万?我写的这个镜像在全球已经有一百万次使用了...

这着实让我震惊了一把,我没看错吧,当时瞬间懵了,迟疑了一下,问我自己:M 是百万的意思吧?

我还确认了下第二名是 10K,是一万,我的排名比他高,那应该就是了。

有人可能好奇我是这么做到这么高的,这个我真不知道,我本来以为几千次下载就差不多了,因为 GitHub 上这个项目是 2.2k,所以我觉得是不是有人误操作帮我刷量了?或许吧。

毕竟 Nginx 才 10M+:

不过据我观察,10M+ 应该是封顶,最多就显示这么多,没准可能它已经 10T+ 了呢?

算了不管了,心里就小欢喜一下吧哈哈。

另外有的朋友可能不太懂这个,想知道我写的究竟是个啥,这里就顺便再介绍下啦。

这就是个代理池,可以一键运行从网上抓取一些 HTTP 代理 IP,可以供爬虫伪装 IP 使用。

我写的这个代理池有这些功能:

  • 定时抓取免费代理网站,简易可扩展。

  • 使用 Redis 对代理进行存储并对代理可用性进行排序。

  • 定时测试和筛选,剔除不可用代理,留下可用代理。

  • 提供代理 API,随机取用测试通过的可用代理。

使用也非常简单,新建一个 docker-compose.yaml 文件,内容如下:

version: '3'
services:redis4proxypool:image: redis:alpinecontainer_name: redis4proxypoolcommand: redis-serverports:- "6379:6379"proxypool:image: 'germey/proxypool'container_name: proxypoolports:- "5555:5555"restart: alwaysenvironment:REDIS_HOST: redis4proxypool

然后使用 Docker-Compose 即可运行:

docker-compose up

运行结果类似如下:

redis        | 1:M 19 Feb 2020 17:09:43.940 * DB loaded from disk: 0.000 seconds
redis        | 1:M 19 Feb 2020 17:09:43.940 * Ready to accept connections
proxypool    | 2020-02-19 17:09:44,200 CRIT Supervisor is running as root.  Privileges were not dropped because no user is specified in the config file.  If you intend to run as root, you can set user=root in the config file to avoid this message.
proxypool    | 2020-02-19 17:09:44,203 INFO supervisord started with pid 1
proxypool    | 2020-02-19 17:09:45,209 INFO spawned: 'getter' with pid 10
proxypool    | 2020-02-19 17:09:45,212 INFO spawned: 'server' with pid 11
proxypool    | 2020-02-19 17:09:45,216 INFO spawned: 'tester' with pid 12
proxypool    | 2020-02-19 17:09:46,596 INFO success: getter entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
proxypool    | 2020-02-19 17:09:46,596 INFO success: server entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)
proxypool    | 2020-02-19 17:09:46,596 INFO success: tester entered RUNNING state, process has stayed up for > than 1 seconds (startsecs)

可以看到 Redis、Getter、Server、Tester 都已经启动成功。

这时候访问 http://localhost:5555/random 即可获取一个随机可用代理。

在项目里面只需要请求这个 API,然后解析网页返回结果获取到代理就能直接用了。

关于详细的原理大家可以参考我的这篇文章:https://cuiqingcai.com/7048.html

详细的使用方法可以看项目的 README:https://github.com/Python3WebSpider/ProxyPool

欢迎大家试用提宝贵意见哈,感谢!

End

「进击的Coder」专属学习群已正式成立,搜索「CQCcqc4」添加崔庆才的个人微信或者扫描下方二维码拉您入群交流学习。

看完记得关注@进击的Coder

及时收看更多好文

↓↓↓

点个在看你最好看

这篇关于卧槽!我写的 Docker 镜像下载量居然突破了一百万...的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/991810

相关文章

Docker镜像pull失败两种解决办法小结

《Docker镜像pull失败两种解决办法小结》有时候我们在拉取Docker镜像的过程中会遇到一些问题,:本文主要介绍Docker镜像pull失败两种解决办法的相关资料,文中通过代码介绍的非常详细... 目录docker 镜像 pull 失败解决办法1DrQwWCocker 镜像 pull 失败解决方法2总

通过Docker Compose部署MySQL的详细教程

《通过DockerCompose部署MySQL的详细教程》DockerCompose作为Docker官方的容器编排工具,为MySQL数据库部署带来了显著优势,下面小编就来为大家详细介绍一... 目录一、docker Compose 部署 mysql 的优势二、环境准备与基础配置2.1 项目目录结构2.2 基

关于Docker Desktop的WSL报错问题解决办法

《关于DockerDesktop的WSL报错问题解决办法》:本文主要介绍关于DockerDesktop的WSL报错问题解决办法的相关资料,排查发现是因清理%temp%文件夹误删关键WSL文件,... 目录发现问题排查过程:解决方法其实很简单:重装之后再看就能够查到了:最后分享几个排查这类问题的小www.cp

使用国内镜像源优化pip install下载的方法步骤

《使用国内镜像源优化pipinstall下载的方法步骤》在Python开发中,pip是一个不可或缺的工具,用于安装和管理Python包,然而,由于默认的PyPI服务器位于国外,国内用户在安装依赖时可... 目录引言1. 为什么需要国内镜像源?2. 常用的国内镜像源3. 临时使用国内镜像源4. 永久配置国内镜

如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件

《如何使用Docker部署FTP和Nginx并通过HTTP访问FTP里的文件》本文介绍了如何使用Docker部署FTP服务器和Nginx,并通过HTTP访问FTP中的文件,通过将FTP数据目录挂载到N... 目录docker部署FTP和Nginx并通过HTTP访问FTP里的文件1. 部署 FTP 服务器 (

解读docker运行时-itd参数是什么意思

《解读docker运行时-itd参数是什么意思》在Docker中,-itd参数组合用于在后台运行一个交互式容器,同时保持标准输入和分配伪终端,这种方式适合需要在后台运行容器并保持交互能力的场景... 目录docker运行时-itd参数是什么意思1. -i(或 --interactive)2. -t(或 --

Docker部署Jenkins持续集成(CI)工具的实现

《Docker部署Jenkins持续集成(CI)工具的实现》Jenkins是一个流行的开源自动化工具,广泛应用于持续集成(CI)和持续交付(CD)的环境中,本文介绍了使用Docker部署Jenkins... 目录前言一、准备工作二、设置变量和目录结构三、配置 docker 权限和网络四、启动 Jenkins

Python使用国内镜像加速pip安装的方法讲解

《Python使用国内镜像加速pip安装的方法讲解》在Python开发中,pip是一个非常重要的工具,用于安装和管理Python的第三方库,然而,在国内使用pip安装依赖时,往往会因为网络问题而导致速... 目录一、pip 工具简介1. 什么是 pip?2. 什么是 -i 参数?二、国内镜像源的选择三、如何

ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法

《ElasticSearch+Kibana通过Docker部署到Linux服务器中操作方法》本文介绍了Elasticsearch的基本概念,包括文档和字段、索引和映射,还详细描述了如何通过Docker... 目录1、ElasticSearch概念2、ElasticSearch、Kibana和IK分词器部署

docker如何删除悬空镜像

《docker如何删除悬空镜像》文章介绍了如何使用Docker命令删除悬空镜像,以提高服务器空间利用率,通过使用dockerimage命令结合filter和awk工具,可以过滤出没有Tag的镜像,并将... 目录docChina编程ker删除悬空镜像前言悬空镜像docker官方提供的方式自定义方式总结docker