
gregewing/apt-mirror本镜像解决了Docker Hub上现有apt-mirror镜像基于旧基础镜像的问题,基于ubuntu:latest(当前为20.04 Focal Fosa)构建,并配置为在基础镜像更新时自动重建,确保始终保持最新。适用于镜像Ubuntu、Debian、Kali等apt仓库,通过nginx在本地网络提供仓库服务,并集成精确带宽控制机制。经测试,apt-mirror在Ubuntu 20.04上运行稳定。
tc命令实现带宽控制建议先创建数据卷,便于管理配置脚本,确保容器重建或升级时脚本可访问:
bashdocker volume create apt-mirror-config
使用以下命令启动容器,挂载数据卷并配置基本参数:
bashdocker run -d -it \ --name=apt-mirror \ -e TZ=Europe/London \ -v apt-mirror-config:/var/spool/apt-mirror \ --restart unless-stopped \ -p 9090:80 \ gregewing/apt-mirror
参数说明:
-e TZ=Europe/London:设置时区(根据实际需求调整,如Asia/Shanghai)-v apt-mirror-config:/var/spool/apt-mirror:挂载数据卷,存储配置文件和脚本--restart unless-stopped:除非手动停止,否则容器自动重启-p 9090:80:将容器内nginx的80端口映射到宿主机9090端口,通过[***]访问仓库镜像同步的仓库列表由/etc/apt/mirror.list控制,该文件在容器内持久化存储。修改后需重启容器使配置生效。
操作步骤:
/var/lib/docker/volumes/apt-mirror-config/_data/mirror.list),添加或调整需镜像的仓库bashdocker restart apt-mirror
带宽控制通过以下组件实现:
/var/spool/apt-mirror/adapter.idadapter.id通过tc命令应用带宽限制宿主机依赖准备
确保宿主机已安装iproute2(提供tc命令),且具有执行权限(可能需要sudo权限)。
配置宿主机cron任务
在宿主机添加cron任务,定期执行limit_bw脚本(建议每60秒执行一次,确保带宽配置实时更新):
bash* * * * * sudo /var/lib/docker/volumes/apt-mirror-config/_data/limit_bw
limit_bw脚本,修改以下参数控制带宽:
ratelimit=1mbit:设置持续速率限制burstlimit=1mbit:设置突发速率限制tc命令规范)支持的速率单位:
bit(比特/秒)、kbit(千比特/秒)、mbit(兆比特/秒)、gbit(吉比特/秒)、tbit(太比特/秒)bps(字节/秒)、kbps(千字节/秒)、mbps(兆字节/秒)、gbps(吉字节/秒)、tbps(太字节/秒)ki-、mi-等前缀,如kibit、mibps)iproute2和cron服务,需确保宿主机已正确配置并具有执行权限mirror.list后必须重启容器,配置才能生效/etc/crontab)


manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务