Docker image for apt-cacher-ng.
Apt-Cache-ng is a caching proxy. Specialized for package files from Linux distributors, primarily for Debian (and Debian based) distributions but not limited to those.
A caching proxy have the following benefits:
- Lower latency
- Reduce WAN traffic
- Higher speed for cached contents
To pull this image:
docker pull modem7/apt-cacher-ng
The latest
tag has multi-arch support for amd64
, and arm64
and will automatically pull the correct tag based on your system's architecture.
Variable | Possible Values | Description |
---|---|---|
PRECACHE | enabled or yes | Enables the precache for Debian, Ubuntu, Debian Security, and Docker |
docker run -d \
--name apt-cacher-ng \
-p 3142:3142 \
-e TZ="Europe/London" \
-v /data/apt-cacher-ng:/var/cache/apt-cacher-ng \
modem7/apt-cacher-ng
################
#APT-Cacher-NG##
################
apt-cacher-ng:
container_name: APT-Cacher-NG
hostname: APT-Cacher-NG
restart: always
image: modem7/apt-cacher-ng
networks:
pihole:
ipv4_address: '172.22.0.111'
ports:
- "3142:3142"
volumes:
- apt-cacher-ng:/var/cache/apt-cacher-ng
volumes:
apt-cacher-ng:
This image runs apt-cacher-ng
, cron
, and rsyslogd
to ensure that apt-cacher-ng functions properly with scheduled jobs and appropriate logging.
In order to configure a host to make use of apt-cacher-ng on a box, you should create a file on the host /etc/apt/apt.conf
with the following lines:
Acquire::http::Proxy "http://<docker-host>:3142";
Or a one liner for Debian/Ubuntu hosts:
echo "Acquire::http::Proxy \"http://<docker-host>:3142\";" | sudo tee /etc/apt/apt.conf.d/00proxy
You can also bypass the apt caching server on a per client basis by using the following syntax in your /etc/apt/apt.conf
file:
Acquire::HTTP::Proxy::<repo-url> "DIRECT";
For example:
Acquire::HTTP::Proxy::get.docker.com "DIRECT";
Acquire::HTTP::Proxy::download.virtualbox.org "DIRECT";
Note: The above assumes that you are mapping port 3142 on the docker host and 3142 is accessible from all machines.
You can also update the /etc/apt-cacher-ng/acng.conf and add one or more PassThroughPattern
lines to force clients to bypass a repository:
PassThroughPattern: get\.docker\.com
PassThroughPattern: download\.virtualbox\.org
Getting https://download.docker.com to cache
If you want to cache your Docker.com downloads, you'll need to change the repo on your client from https to http.
For example, if you're following the Ubuntu install instructions, you'll need to do change the following:
Instead of
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] https://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null
Change to:
echo \
"deb [arch=$(dpkg --print-architecture) signed-by=/etc/apt/keyrings/docker.gpg] http://download.docker.com/linux/ubuntu \
$(lsb_release -cs) stable" | sudo tee /etc/apt/sources.list.d/docker.list > /dev/null