docker 配置缓存代理服务apt-cacher-ng

简介:

Apt-Cacher-NG是一个缓存代理服务(或者apt代理),对基于Debian的设备,如 Ubuntu, Kubuntu, Xubuntu, Edubuntu, Linux Mint等,它被是用来缓存已经下载过的包。

wKioL1jbgyzxjb9AAAFjNQixMhc202.png

你有几台电脑链接的网络,你想手动在每台机器上安装或者更新软件包,(可想而知)这是一个相当困难的任务而且耗费时间;这就是我们为什么要配置一个apt-cacher-ng服务到所有系统这个伟大想法的原因,因为它将从网络首次缓存所有已下载包到 apt-cache server,剩余的Debian, Ubuntu机器获得这些软件包就只需从Apt-Cache直接获取,这将节约我们的宝贵的时间和网络带宽。

特点

  1. apt-cacher-ng 将节约我们的时间.

  2. apt-cacher-ng 将节约我们的带宽.

  3. 通过导入参数,我们可以整合 ISO image data 或者 DVD到 apt-cacher-ng。

本次实验使用docker容器来搭建:

1、首先创建Dockerfile文件,

1
2
3
4
5
6
7
8
root@ubuntu:~ /docker/apt-cache-ng # cat Dockerfile 
FROM        ubuntu
 
VOLUME      [ "/var/cache/apt-cacher-ng" ]
RUN     apt-get update && apt-get  install  -y apt-cacher-ng
 
EXPOSE      3142
CMD      chmod  777  /var/cache/apt-cacher-ng  &&  /etc/init .d /apt-cacher-ng  start &&  tail  -f  /var/log/apt-cacher-ng/ *

2、build这个镜像

1
docker build -t eg_apt_cache_ng .

3、启动镜像,并且把端口映射到宿主机的13142上

1
docker run -d -p 13142:3142 --name test_apt_cacher_ng eg_apt_cacher_ng

4、可以使用docker命令来查看日志

1
docker logs -f test_apt_cacher_ng

5、登录浏览器查看;

wKioL1jbhV6htjA_AAEZZsPnZ_8744.png-wh_50

wKiom1jbhZLBIRp4AAB6E_3pxtY989.png

这里,我们可以看到 apt-cacher-ng的报告页面,点击静态报告,配置页面的底部,导航到下载命中或者失误的情况页面。

在报告页面我们需要复制Proxy URL以便后边使用。我们可以安装包在这个server上,通过配置本地参数,添加实体/etc/apt/apt.conf.d/02proxy的 apt-cache。

Acquire::http { Proxy "http://192.168.0.2:3142"; };

docker官网的说明:

To get your Debian-based containers to use the proxy, you have following options. Note that you must replace dockerhost with the IP address or FQDN of the host running the test_apt_cacher_ng container.

  1. Add an apt Proxy setting echo 'Acquire::http { Proxy "http://dockerhost:3142"; };' >> /etc/apt/conf.d/01proxy

  2. Set an environment variable: http_proxy=http://dockerhost:3142/

  3. Change your sources.list entries to start with http://dockerhost:3142/

  4. Link Debian-based containers to the APT proxy container using --link

  5. Create a custom network of an APT proxy container with Debian-based containers.


6、创建客户端的docker 容器

1
docker run -- rm  -t -i -e http_proxy=http: //192 .168.0.2:3142/ debian  bash

这里也是可以使用dockerfile来指定

1
2
3
FROM ubuntu
RUN   echo  'Acquire::http { Proxy "http://192.168.0.2:3142"; };'  >>  /etc/apt/apt .conf.d /01proxy
RUN apt-get update && apt-get  install  -y vim git

链接容器到apt容器上

1
  docker run -i -t --link test_apt_cacher_ng:apt_proxy -e http_proxy=http: //apt_proxy :3142/ debian  bash

你也可以自己创建一个容器,然后进入到容器中,去手动配置

1
2
  vim  /etc/apt/apt .conf.d /02proxy  #在这个路径下创建文件
  Acquire::http { Proxy  "http://192.168.0.2:3142" ; };  #写入这条内容

7、测试:

到处我们服务端和客户端都安装完毕

1
2
3
4
root@ubuntu:~ /docker/apt-cache-ng # docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                     NAMES
bd4e542edb39        debian               "bash"                    59 minutes ago      Up 59 minutes                                 peaceful_pike
f6fafb226c66        eg_apt_cache_ng      "/bin/sh -c 'chmod..."    About an hour ago   Up About an hour    0.0.0.0:13142->3142 /tcp    test_apt_cacher_ng

登录到客户端中,去更新几个包,或者安装几个包,然后再web上面可以看到缓存来多少个文件

wKiom1jbiEHj0jmLAAB_TOIoztc228.png-wh_50

这里你可以把安装包,卸载,然后再次安装,你会发现速度会非常快,而且web上面也会hits也会有变动来显示你是否从apt上下载




本文转自 kesungang 51CTO博客,原文链接:http://blog.51cto.com/sgk2011/1911515,如需转载请自行联系原作者

相关文章
|
1月前
|
Linux Docker 容器
Linux 中停止 Docker 服务报 warning 导致无法彻底停止问题如何解决?
在 Linux 系统中,停止 Docker 服务时遇到警告无法彻底停止的问题,可以通过系统管理工具停止服务、强制终止相关进程、检查系统资源和依赖关系、以及重置 Docker 环境来解决。通过以上步骤,能够有效地排查和解决 Docker 服务停止不彻底的问题,确保系统的稳定运行。
151 19
|
1月前
|
缓存 NoSQL Java
Mybatis学习:Mybatis缓存配置
MyBatis缓存配置包括一级缓存(事务级)、二级缓存(应用级)和三级缓存(如Redis,跨JVM)。一级缓存自动启用,二级缓存需在`mybatis-config.xml`中开启并配置映射文件或注解。集成Redis缓存时,需添加依赖、配置Redis参数并在映射文件中指定缓存类型。适用于查询为主的场景,减少增删改操作,适合单表操作且表间关联较少的业务。
|
2月前
|
Docker 容器
|
2月前
|
开发工具 Docker 容器
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
|
2月前
|
Docker 容器
Docker 镜像加速器配置指南
dockerhub加速器失败,使用第三方加速器
|
2月前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
96 5
|
3月前
|
存储 安全 数据安全/隐私保护
Docker中配置TLS加密的步骤
我们可以在 Docker 中成功配置 TLS 加密,增强 Docker 环境的安全性,保护容器之间以及与外界的通信安全。需要注意的是,在实际应用中,应根据具体情况进行更细致的配置和调整,确保符合安全要求。同时,定期更新证书和私钥,以保障安全性。
164 1
|
3月前
|
存储 缓存 安全
在 Service Worker 中配置缓存策略
Service Worker 是一种可编程的网络代理,允许开发者控制网页如何加载资源。通过在 Service Worker 中配置缓存策略,可以优化应用性能,减少加载时间,提升用户体验。此策略涉及缓存的存储、更新和检索机制。
|
Docker 容器
《第一本Docker书(修订版)》——1.4 Docker与配置管理
从Docker项目公布以来,已经有大量关于“哪些配置管理工具适用于Docker”的讨论,如Puppet、Chef。Docker包含一套镜像构建和镜像管理的解决方案。现代配置管理工具的原动力之一就是“黄金镜像”模型[8]。
1608 0
|
1月前
|
数据库 Docker 容器
docker容器为啥会开机自启动
通过配置适当的重启策略,Docker容器可以在主机系统重启后自动启动。这对于保持关键服务的高可用性和自动恢复能力非常有用。选择适合的重启策略(如 `always`或 `unless-stopped`),可以确保应用程序在各种情况下保持运行。理解并配置这些策略是确保Docker容器化应用可靠性的关键。
253 93