卧槽!我写的 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运行Django项目

本章教程,介绍如何用Docker创建一个Django,并运行能够访问。 一、拉取镜像 这里我们使用python3.11版本的docker镜像 docker pull python:3.11 二、运行容器 这里我们将容器内部的8080端口,映射到宿主机的80端口上。 docker run -itd --name python311 -p

黑神话,XSKY 星飞全闪单卷性能突破310万

当下,云计算仍然是企业主要的基础架构,随着关键业务的逐步虚拟化和云化,对于块存储的性能要求也日益提高。企业对于低延迟、高稳定性的存储解决方案的需求日益迫切。为了满足这些日益增长的 IO 密集型应用场景,众多云服务提供商正在不断推陈出新,推出具有更低时延和更高 IOPS 性能的云硬盘产品。 8 月 22 日 2024 DTCC 大会上(第十五届中国数据库技术大会),XSKY星辰天合正式公布了基于星

禅道Docker安装包发布

禅道Docker安装包发布 大家好, 禅道Docker安装包发布。 一、下载地址 禅道开源版:   /dl/zentao/docker/docker_zentao.zip  备用下载地址:https://download.csdn.net/download/u013490585/16271485 数据库用户名: root,默认密码: 123456。运行时,可以设置 MYSQL_ROOT_P

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群

828华为云征文|华为云Flexus X实例docker部署rancher并构建k8s集群 华为云最近正在举办828 B2B企业节,Flexus X实例的促销力度非常大,特别适合那些对算力性能有高要求的小伙伴。如果你有自建MySQL、Redis、Nginx等服务的需求,一定不要错过这个机会。赶紧去看看吧! 什么是华为云Flexus X实例 华为云Flexus X实例云服务是新一代开箱即用、体

docker-compose安装和简单使用

本文介绍docker-compose的安装和使用 新版docker已经默认安装了docker-compose 可以使用docker-compose -v 查看docker-compose版本 如果没有的话可以使用以下命令直接安装 sudo curl -L https://github.com/docker/compose/releases/download/1.16.1/docker-c

01 Docker概念和部署

目录 1.1 Docker 概述 1.1.1 Docker 的优势 1.1.2 镜像 1.1.3 容器 1.1.4 仓库 1.2 安装 Docker 1.2.1 配置和安装依赖环境 1.3镜像操作 1.3.1 搜索镜像 1.3.2 获取镜像 1.3.3 查看镜像 1.3.4 给镜像重命名 1.3.5 存储,载入镜像和删除镜像 1.4 Doecker容器操作 1.4

OpenStack镜像制作系列5—Linux镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作

OpenStack镜像制作系列4—Windows Server2019镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录  CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系

OpenStack镜像制作系列2—Windows7镜像

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作系列

OpenStack镜像制作系列1—环境准备

本系列文章主要对如何制作OpenStack镜像的过程进行描述记录 CSDN:OpenStack镜像制作教程指导(全) OpenStack镜像制作系列1—环境准备 OpenStack镜像制作系列2—Windows7镜像 OpenStack镜像制作系列3—Windows10镜像 OpenStack镜像制作系列4—Windows Server2019镜像 OpenStack镜像制作