
Le moyen le plus rapide et le plus reproductible de faire tourner Nexus Repository est le conteneur : une image officielle, un volume pour les données, et Nexus est prêt en quelques minutes. Ce guide déploie Nexus Community Edition 3.77 avec Docker Compose, récupère le mot de passe admin initial et vérifie l'état du service par son API. Public visé : débutant à intermédiaire. Toutes les commandes ont été validées sur Nexus 3.77.1.
Ce que vous allez apprendre
Section intitulée « Ce que vous allez apprendre »- Déployer Nexus en conteneur avec une image épinglée.
- Persister les données dans un volume dédié.
- Récupérer le mot de passe admin initial.
- Vérifier que Nexus est prêt via son API de statut.
Prérequis
Section intitulée « Prérequis »- Docker et Docker Compose installés.
- Environ 2 Go de RAM disponibles pour la JVM de Nexus.
Déployer avec Docker Compose
Section intitulée « Déployer avec Docker Compose »On décrit le service dans un compose.yaml. Deux points comptent : l'image est épinglée à une version précise (jamais latest), et les données vont dans un volume nommé pour survivre au redémarrage du conteneur.
services: nexus: image: sonatype/nexus3:3.77.1 container_name: nexus ports: - "8081:8081" environment: # Borne la mémoire de la JVM pour éviter les arrêts brutaux au démarrage. INSTALL4J_ADD_VM_PARAMS: "-Xms2g -Xmx2g -XX:MaxDirectMemorySize=2g" volumes: - nexus-data:/nexus-data restart: unless-stopped
volumes: nexus-data:Lancez le conteneur :
docker compose up -dAttendre le démarrage
Section intitulée « Attendre le démarrage »Nexus met 1 à 3 minutes à démarrer au premier lancement, le temps d'initialiser sa base et ses dépôts par défaut. Son API de statut répond 200 quand il est prêt. On peut donc attendre proprement sans deviner :
until curl -sf http://localhost:8081/service/rest/v1/status >/dev/null; do echo "Nexus démarre..."; sleep 6doneecho "Nexus est prêt"Une fois prêt, l'interface est disponible sur http://localhost:8081.
Récupérer le mot de passe admin
Section intitulée « Récupérer le mot de passe admin »À la première installation, Nexus génère un mot de passe admin aléatoire qu'il écrit dans un fichier à l'intérieur du conteneur. On le lit avec docker exec :
docker exec nexus cat /nexus-data/admin.passwordff5f64b0-0600-4f87-9b41-c0c27d1c40a7Ce mot de passe sert à la première connexion avec l'utilisateur admin.
Première connexion
Section intitulée « Première connexion »Ouvrez http://localhost:8081 et cliquez sur Sign In en haut à droite. La fenêtre de connexion rappelle d'ailleurs l'emplacement du mot de passe initial. Saisissez admin et le mot de passe lu à l'étape précédente :

Un assistant en trois étapes se lance alors. Il vous impose de changer le mot de passe admin, puis de choisir la politique d'accès anonyme :
- Activer l'accès anonyme : n'importe qui peut chercher, parcourir et télécharger sans identifiant. Pratique en lab, à réserver aux dépôts publics.
- Désactiver l'accès anonyme : chaque client et chaque outil de build devra s'authentifier. C'est le réglage attendu en entreprise.
Vérifier l'installation
Section intitulée « Vérifier l'installation »Au-delà du statut 200, l'API confirme la version et liste les dépôts par défaut créés à l'initialisation. Nexus arrive avec des dépôts prêts à l'emploi pour Maven, npm, PyPI, NuGet et Docker :
curl -s -u admin:VOTRE_MDP http://localhost:8081/service/rest/v1/repositories \ | jq -r '.[] | "\(.type)\t\(.format)\t\(.name)"'proxy maven2 maven-centralgroup maven2 maven-publichosted maven2 maven-releasesproxy npm npm-public-proxyproxy pypi pypi-public-proxyCes dépôts illustrent les trois types de Nexus : un proxy met en cache un dépôt public, un hosted stocke vos artefacts privés, un group agrège plusieurs dépôts derrière une seule URL. Les guides suivants exploitent ces types pour un cache et un registre Docker.
Où sont stockées les données : le blob store
Section intitulée « Où sont stockées les données : le blob store »Comprendre ce point est essentiel pour la sauvegarde. Nexus range les fichiers (les .jar, .whl, couches d'image) dans un blob store, distinct de la base de données qui, elle, garde les métadonnées (quel composant, quelle version, quel dépôt). Le volume /nexus-data que vous avez monté contient les deux.
Dans Administration, Blob Stores, vous voyez le blob store default (type File), son nombre d'objets, sa taille et l'espace disque restant :

Dépannage
Section intitulée « Dépannage »| Symptôme | Cause probable | Solution |
|---|---|---|
| Le conteneur s'arrête au démarrage | Mémoire insuffisante | Vérifier la RAM libre, garder -Xms/-Xmx à 2g |
admin.password introuvable | Instance déjà initialisée | Le mot de passe a été changé ; le fichier disparaît après la première connexion |
L'API répond 404 | Mauvais port publié | Vérifier docker port nexus et l'URL |
| Données perdues au redémarrage | Volume non monté | Confirmer le volume nommé nexus-data:/nexus-data |
À retenir
Section intitulée « À retenir »- Nexus se déploie proprement en conteneur avec une image épinglée (
sonatype/nexus3:3.77.1). - Les données vivent dans un volume nommé
/nexus-data, à préserver. - Nexus démarre en 1 à 3 minutes ; l'API
/service/rest/v1/statussignale la disponibilité. - Le mot de passe admin initial se lit dans
/nexus-data/admin.passwordet doit être changé à la première connexion. - Nexus crée des dépôts par défaut illustrant les types proxy, hosted et group.