J'essaie de pousser une image d'un conteneur Windows vers un référentiel "local" sur une VM Windows, qui a sa propre adresse IP.
Ainsi, lorsque je crée le registre sur ma VM, je peux afficher la liste des référentiels sur ma machine locale en accédant à l'adresse ip: 5000 très bien.
Cependant, lorsque j'essaie de pousser une image vers le registre, elle montre les couches à pousser, mais en bas, elle indique un statut HTTP inattendu: 500 Erreur de serveur interne.
Ce n'est pas un problème lorsque je passe aux conteneurs Linux. Je peux pousser et tirer du registre sans problème.
3 Réponses :
Vous devez autoriser les artefacts non distribuables en définissant l'option " allow-nondistributable-artifacts
" dans le fichier JSON de configuration du démon.
Pour Linux: créez ou mettez à jour le fichier JSON du démon docker avec l'option ci-dessus dans /etc/docker/daemon.json
Pour les fenêtres:
Ajoutez l'option allow-nondistributable-artifacts
dans le JSON comme:
{ "registry-mirrors": [], "insecure-registries": [], "debug": true, "experimental": true, "allow-nondistributable-artifacts": [ "localhost:5000" ] }
Remplacez localhost
par le nom de votre propre nom de serveur.
daemon.json
se trouve sous C:\ProgramData\Docker\config\daemon.json
Remarque : Si vous avez d'autres paramètres, UNIQUEMENT allow-nondistributable-artifacts
est important / obligatoire.
Cela peut être dû à une erreur sur le serveur distant (ou serveur local) sur lequel vous souhaitez pousser votre image. Dans mon cas, c'était un problème d'espace disque qui a été jeté comme une erreur de serveur 500. Le problème doit être vérifié sur le serveur sur lequel l'image est poussée.
Toutes vos images ont été poussées sauf quelques-unes car toutes les autres étaient déjà poussées et celles qui étaient nouvelles ont échoué.
Pour moi, le problème était que notre registre était plein. Je l'ai vidé et cela a fonctionné.