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,如需转载请自行联系原作者

相关文章
|
12天前
|
存储 Prometheus 监控
Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行
本文深入探讨了在Docker容器内进行应用调试与故障排除的方法与技巧,包括使用日志、进入容器检查、利用监控工具及检查配置等,旨在帮助用户有效应对应用部署中的挑战,确保应用稳定运行。
23 5
|
18天前
|
存储 安全 数据安全/隐私保护
Docker中配置TLS加密的步骤
我们可以在 Docker 中成功配置 TLS 加密,增强 Docker 环境的安全性,保护容器之间以及与外界的通信安全。需要注意的是,在实际应用中,应根据具体情况进行更细致的配置和调整,确保符合安全要求。同时,定期更新证书和私钥,以保障安全性。
42 1
|
23天前
|
存储 缓存 安全
在 Service Worker 中配置缓存策略
Service Worker 是一种可编程的网络代理,允许开发者控制网页如何加载资源。通过在 Service Worker 中配置缓存策略,可以优化应用性能,减少加载时间,提升用户体验。此策略涉及缓存的存储、更新和检索机制。
|
2月前
|
负载均衡 应用服务中间件 网络安全
docker swarm添加更多的服务
【10月更文挑战第16天】
25 6
|
2月前
|
Docker 容器
docker swarm启动服务并连接到网络
【10月更文挑战第16天】
36 5
|
1月前
|
存储 缓存 监控
配置 Webpack 5 持久化缓存时需要注意哪些安全问题?
【10月更文挑战第23天】通过全面、系统地分析和应对安全问题,能够更好地保障 Webpack 5 持久化缓存的安全,为项目的成功构建和运行提供坚实的安全基础。同时,要保持对安全技术的关注和学习,不断提升安全防范能力,以应对日益复杂的安全挑战。
|
2月前
|
负载均衡 网络协议 关系型数据库
docker swarm 使用网络启动服务
【10月更文挑战第15天】
32 4
|
2月前
|
Docker 容器
docker swarm 在服务中使用网络
【10月更文挑战第14天】
32 2
|
2月前
|
Java jenkins 持续交付
Centos7下docker的jenkins下载并配置jdk与maven
通过上述步骤,您将成功在CentOS 7上的Docker容器中部署了Jenkins,并配置好了JDK与Maven,为持续集成和自动化构建打下了坚实基础。
125 1
|
2月前
|
网络协议 Docker 容器
docker中的DNS配置
【10月更文挑战第5天】
397 1