Cependant cette technique ne fonctionne qu'avec les images du registre publique de Docker (ce qui est déjà super), mais pas avec les registres privés, comme celui de Kubernetes par exemple.
Si je fais docker pull k8s.gcr.io/pause:3.1, l'image est téléchargée, mais pas de copie dans le registre local.
Aurais-tu une astuce pour gérer aussi ce cas?
P.S: J'ai trouvé une image Docker qui inclus un serveur Nginx et qui sert de proxy pour les URLs données (k8s.gcr.io y ai ajouté pour l'exemple), ce qui permet au registre local de fonctionner aussi pour les images de registres privés, mais cette astuce ne fonctionnera pas pour ce que je veux faire 😕.
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:
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:
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.
For further actions, you may consider blocking this person and/or reporting abuse
We're a place where coders share, stay up-to-date and grow their careers.
Super article, merci 👍.
Cependant cette technique ne fonctionne qu'avec les images du registre publique de Docker (ce qui est déjà super), mais pas avec les registres privés, comme celui de Kubernetes par exemple.
Si je fais
docker pull k8s.gcr.io/pause:3.1
, l'image est téléchargée, mais pas de copie dans le registre local.Aurais-tu une astuce pour gérer aussi ce cas?
P.S: J'ai trouvé une image Docker qui inclus un serveur Nginx et qui sert de proxy pour les URLs données (
k8s.gcr.io
y ai ajouté pour l'exemple), ce qui permet au registre local de fonctionner aussi pour les images de registres privés, mais cette astuce ne fonctionnera pas pour ce que je veux faire 😕.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:
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:
Donc peut-être qu'en configurant un cache par registry, et en les ajoutant tous au miroir ça marchera ?
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 dansregistry-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.