DEV Community

Discussion on: Économiser du temps et de la bande passante avec un cache Docker local

Collapse
 
mayeu profile image
Mayeu

Salut 👋

Merci pour le compliment, je suis heureux que ça t'ait été utile !

Alors, je n'utilise pas de registry privé du tout (en tout cas pour l'instant), donc je ne suis pas 100% sûr que ce que je vais dire ensuite marche.

D'abord, chaque registre local ne peut servir de cache qu'à un seul autre registre. Du coup il faudra faire tourner un autre container avec une nouvelle configuration dedans.

Le proxy support l'utilisation d'un username + password (voir la doc:

proxy:
  remoteurl: https://registry-1.docker.io
  username: [username]
  password: [password]

Attention à ça, car il y a un risque en stockant un mot de passe dans un fichier. Idéalement il faudrait créer un compte dédié avec des droits limités.

Finalement, il est possible de passer plusieurs caches à docker:

{
    "registry-mirrors": ["http://localhost:5000", "http://cache-2"]
}

Donc peut-être qu'en configurant un cache par registry, et en les ajoutant tous au miroir ça marchera ?

Collapse
 
zedtux profile image
ZedTuX

Merci pour ton commentaire.

En fait, je voudrais cacher le téléchargement des images de Kubernetes, mais malheureusement, quand Docker voit une image qui a un nom de domaine devant (k8s.gcr.io dans ce cas si), il concidère que c'est un registre privé et donc ne passe plus par le(s) registre(s) spécifiés dans registry-mirrors.

J'ai trouvé cette image Docker qui permet de palier à ce problème en fournissant un proxy (squid) et un registre Docker: hub.docker.com/r/rpardini/docker-r....

Je n'ai pas encore réussi à la faire fonctionner correctement (j'ai un ticket en cours) mais l'image est prometteuse.