Docker Hub, avec son offre gratuite, te limite à un seul dépôt privé et impose des restrictions sur le téléchargement d'images. Pour tout dépôt supplémentaire ou un débit de téléchargement plus élevé, tu dois opter pour un plan Pro ou Team payant, facturé par utilisateur et par mois. Chez Saplo, Docker Registry est ton propre espace de stockage privé pour les images Docker que tu as créées, accessible via ton domaine. Il offre une interface simple directement dans ton navigateur pour consulter les dépôts, les tags et les couches, sans aucune limite de dépôts ni de téléchargements. Voici comment installer Docker Registry sur Saplo, étape par étape :
Pourquoi un registre privé plutôt que Docker Hub
Docker Hub est pratique pour commencer, mais il présente deux faiblesses qu'un registre privé résout :
- Le plan gratuit de Docker Hub ne t'offre qu'un seul dépôt privé ; toute image privée supplémentaire nécessite un plan Pro payant (à partir d'environ 5 $ par mois) ou Team (à partir d'environ 9 $ par mois et par utilisateur) si plusieurs personnes travaillent sur le projet.
- Les limites de taux de pull restreignent le nombre de fois par jour où ton pipeline CI/CD ou ton serveur de production peut télécharger une image, ce qui, en cas de déploiements fréquents et de nombreuses instances de la même application, peut bloquer un déploiement au pire moment.
- Les images créées dans le CI/CD de ton entreprise et stockées dans un cloud public tiers sont des données hors de ton contrôle, même si le dépôt est marqué comme privé.
Docker Registry sur Saplo est l'image officielle registry:2 (Docker Distribution) avec une interface utilisateur web, les deux dans un seul conteneur Docker sur ta Box. Personne ne compte les dépôts ni les téléchargements, et le coût total est celui de la Box elle-même, quel que soit le nombre d'images et la fréquence à laquelle ton pipeline les télécharge chaque jour.
Exigences
Pour installer Docker Registry sur Saplo, tu as besoin de :
- Une Box avec Docker activé (le moteur l'active automatiquement lors de l'installation depuis le catalogue, une imbrication dans le conteneur est requise, ce que Saplo propose par défaut),
- Un minimum de 512 Mo de RAM libre sur la Box et de 10 Go d'espace disque pour les images, ce qui signifie que le plan le moins cher pouvant supporter cela est la Box S pour 27 € par an,
- Un Domaine ou un sous-Domaine *.saploapp.pl inclus dans chaque plan, où le registre et l'interface utilisateur seront hébergés,
- Tu n'as PAS besoin d'une base de données séparée, le registre stocke les images construites dans le volume de données de l'application, et non dans une base de données SQL.
Tu trouveras une description complète de l'application et de sa place dans le catalogue sur la page Docker Registry sur Saplo.
Installation étape par étape
- Dans le Panneau Saplo, va dans Catalogue d'applications et sélectionne Docker Registry.
- Indique un Box avec au minimum 512 Mo de RAM libre et 10 Go d'espace disque libre, ainsi que le domaine ou le sous-domaine sous lequel le registre sera créé.
- Confirme l'installation. Le moteur génère un mot de passe administrateur aléatoire, l'enregistre sous forme de hachage bcrypt (le seul format pris en charge par le registre Docker en mode d'autorisation htpasswd), déploie deux conteneurs,
registryà partir de l'image officielleregistry:2etregistry-uià partir de l'imagejoxit/docker-registry-ui, et attend que l'interface utilisateur réponde réellement via HTTP avant de considérer l'installation comme terminée. - L'interface utilisateur fonctionne comme un proxy inverse pour l'API du registre sur le même port et le même domaine, donc
docker login,docker pushetdocker pullfonctionnent directement à l'adresse de l'application, sans ports supplémentaires et sans configuration CORS. - Les données de connexion de l'administrateur (identifiant, mot de passe) sont enregistrées dans le fichier
DOCKER-REGISTRY-SETUP.txtdans le répertoire de l'application.
Première utilisation
- Récupère le login et le mot de passe du fichier
DOCKER-REGISTRY-SETUP.txtdans le dossier de l'application (le login par défaut estadmin, le mot de passe est généré aléatoirement lors de l'installation). - Connecte-toi à partir du Docker local avec la commande
docker login votre-domaine.saploapp.plet fournis le login et le mot de passe du fichier. - Étiquette l'image à l'adresse du registre, par exemple
docker tag my-image:latest votre-domaine.saploapp.pl/my-image:latest, et pousse-la avec la commandedocker push. - Va sur l'adresse du domaine dans ton navigateur, connecte-toi avec le même login et mot de passe, et explore les dépôts, les tags et les couches dans l'interface utilisateur de joxit/docker-registry-ui.
- Sur le serveur de production ou dans le pipeline CI/CD, télécharge l'image avec la commande
docker pull votre-domaine.saploapp.pl/my-image:latest, après t'être connecté avec le même compte.
Docker Registry sur Saplo vs Docker Hub
| Docker Hub Free | Docker Hub Pro/Team | Docker Registry sur Saplo | |
|---|---|---|---|
| Limite de dépôts privés | un | illimité | illimité |
| Limite de taux de pull | oui, pour les comptes anonymes et gratuits | plus élevé, mais toujours comptabilisé | aucune |
| Où sont stockées les images | sur les serveurs de Docker Inc | sur les serveurs de Docker Inc | sur ta Box |
| Prix | 0 USD, mais avec des limites | à partir d'environ 5 USD par mois par utilisateur | le prix de la Box (à partir de 27 € par an) |
Questions fréquentes
Doit-on créer un compte Docker Hub ou un autre registre public ?
Non, le Docker Registry sur Saplo fonctionne de manière totalement autonome. La connexion à docker login se fait avec le nom d'utilisateur et le mot de passe générés lors de l'installation, sans compte chez un fournisseur externe.
Y a-t-il une limite au nombre d'images ou de téléchargements ? Non, la seule limite est l'espace disque de la Box que tu achètes dans ton plan.
Peut-on changer le mot de passe administrateur ?
Oui, tu génères un nouveau hachage bcrypt avec le conteneur à usage unique httpd:2.4-alpine (docker run --rm httpd:2.4-alpine htpasswd -Bbn user password), tu remplaces le fichier htpasswd dans le répertoire de l'application et tu redémarres le conteneur du registre.
Le registre nécessite-t-il une base de données séparée ? Non, les images et leurs métadonnées sont stockées dans le volume de données du conteneur du registre, sans nécessiter de base de données MySQL ou Postgres séparée.
Peut-on supprimer les anciennes images et balises ?
Oui, la suppression des images est activée (REGISTRY_STORAGE_DELETE_ENABLED) et accessible directement depuis l'interface utilisateur dans le navigateur, sans avoir à se connecter via SSH.
Si tu paies aujourd'hui pour Docker Hub Pro ou Team juste pour avoir plus d'un référentiel privé, écris-nous, nous t'aiderons à configurer ton propre registre.
- #CI/CD
- #DevOps
- #Docker
- #Guide
