Registre prive Artifactory¶
Page optionnelle
Cette page concerne uniquement les environnements avec un registre prive (Artifactory, Nexus, Harbor, etc.). Si vous utilisez uniquement Docker Hub, passez au déploiement.
Configurer Podman pour tirer des images depuis un registre prive d'entreprise. Chaque section est indépendante — prenez ce dont vous avez besoin.
Authentification¶
Credentials interactifs¶
Podman demande le nom d'utilisateur et le mot de passe, puis stocke les credentials dans ~/.local/share/containers/auth.json.
Token ou API key¶
Pour les pipelines CI/CD ou les scripts non interactifs :
Emplacement des credentials
Les credentials sont stockes dans ~/.local/share/containers/auth.json (mode rootless) ou /run/containers/0/auth.json. Ce fichier est au format JSON compatible Docker.
Certificats auto-signes¶
Si votre registre utilise un certificat auto-signe ou une CA interne :
sudo mkdir -p /etc/containers/certs.d/artifactory.example.com
sudo cp ca.crt /etc/containers/certs.d/artifactory.example.com/ca.crt
Podman cherche automatiquement les certificats dans /etc/containers/certs.d/<registry>/.
Désactiver la vérification TLS¶
Développement uniquement
Ne desactivez jamais la vérification TLS en production. Cette option expose vos credentials et vos images a des attaques man-in-the-middle.
Pour un registre de développement sans certificat valide :
sudo tee /etc/containers/registries.conf.d/artifactory.conf > /dev/null << 'EOF'
[[registry]]
location = "artifactory.example.com"
insecure = true
EOF
Registre de recherche¶
Pour pouvoir écrire monapp:latest au lieu de artifactory.example.com/docker-local/monapp:latest :
sudo sed -i "s/^unqualified-search-registries.*/unqualified-search-registries = [\"artifactory.example.com\", \"docker.io\"]/" \
/etc/containers/registries.conf
L'ordre compte : Podman cherche d'abord dans le premier registre, puis dans les suivants.
Mirror Docker Hub¶
Si Artifactory sert de proxy-cache pour Docker Hub (utile pour éviter les rate limits et accélérer les pulls) :
sudo tee /etc/containers/registries.conf.d/artifactory-mirror.conf > /dev/null << 'EOF'
[[registry]]
location = "docker.io"
[[registry.mirror]]
location = "artifactory.example.com/docker-remote"
EOF
Avec cette configuration, podman pull nginx:alpine passe par Artifactory. Si l'image est en cache, le pull est quasi instantané. Sinon, Artifactory la téléchargé depuis Docker Hub et la met en cache pour les prochains pulls.
Vous etes pret pour le déploiement.