1
votes

Erreur de serveur interne lors du transfert vers le registre Docker privé sous Windows

J'essaie de créer un référentiel privé conformément à cet article: https://www.codeproject.com/Articles/1263817/How-to-Setup-Our-Own-Private-Docker-Registry

ma plate-forme est Windows 10 et en utilisant docker sur le bureau.

mais j'ai rencontré cette erreur lors de la transmission à mon compte privé:

time="2019-06-22T13:57:07.4534462Z" level=error msg="response completed with error" err.code="blob unknown" err.detail=sha256:bdf0201b3a056acc4d6062cc88cd8a4ad5979983bfb640f15a145e09ed985f92 err.message="blob unknown to registry" go.version=go1.11.2 http.request.host="localhost:5000" http.request.id=8c71d5fa-41f1-49e4-9cab-2042e2cef0fa http.request.method=HEAD http.request.remoteaddr="172.30.80.1:1657" http.request.uri="/v2/my-alpine/blobs/sha256:bdf0201b3a056acc4d6062cc88cd8a4ad5979983bfb640f15a145e09ed985f92" http.request.useragent="docker/18.09.1 go/go1.10.6 git-commit/4c52b90 os/windows arch/amd64 UpstreamClient(Docker-Client/18.09.1 \(windows\))" http.response.contenttype="application/json; charset=utf-8" http.response.duration=2.6325ms http.response.status=404 http.response.written=157 vars.digest="sha256:bdf0201b3a056acc4d6062cc88cd8a4ad5979983bfb640f15a145e09ed985f92" vars.name=my-alpine
172.30.80.1 - - [22/Jun/2019:13:57:07 +0000] "HEAD /v2/my-alpine/blobs/sha256:bdf0201b3a056acc4d6062cc88cd8a4ad5979983bfb640f15a145e09ed985f92 HTTP/1.1" 404 157 "" "docker/18.09.1 go/go1.10.6 git-commit/4c52b90 os/windows arch/amd64 UpstreamClient(Docker-Client/18.09.1 \\(windows\\))"
172.30.80.1 - - [22/Jun/2019:13:57:07 +0000] "POST /v2/my-alpine/blobs/uploads/ HTTP/1.1" 500 258 "" "docker/18.09.1 go/go1.10.6 git-commit/4c52b90 os/windows arch/amd64 UpstreamClient(Docker-Client/18.09.1 \\(windows\\))"
time="2019-06-22T13:57:07.8604305Z" level=error msg="response completed with error" err.code=unknown err.detail="filesystem: truncate /var/lib/registry/docker/registry/v2/repositories/my-alpine/_uploads/8e29f389-ebd5-4d6f-ba80-7be8315c6311/startedat: permission denied" err.message="unknown error" go.version=go1.11.2 http.request.host="localhost:5000" http.request.id=b3de21ad-7b97-4560-8987-84ff62aecb9b http.request.method=POST http.request.remoteaddr="172.30.80.1:1660" http.request.uri="/v2/my-alpine/blobs/uploads/" http.request.useragent="docker/18.09.1 go/go1.10.6 git-commit/4c52b90 os/windows arch/amd64 UpstreamClient(Docker-Client/18.09.1 \(windows\))" http.response.contenttype="application/json; charset=utf-8" http.response.duration=100.4211ms http.response.status=500 http.response.written=258 vars.name=my-alpine

c'est

>docker push localhost:5000/my-alpine

The push refers to repository [localhost:5000/my-alpine]
a464c54f93a9: Retrying in 1 second
received unexpected HTTP status: 500 Internal Server Error

y a-t-il une opinion pour résoudre ce problème? ce problème n'est observé que lorsque je suis en mode Conteneur Windows . quand je passe en mode Conteneur Linux , tout va bien!


4 commentaires

Essayez de redémarrer votre conteneur de registre docker.


Avez-vous également essayé de pousser en utilisant 127.0.0.1:5000, 0.0.0.0:5000, machine-ip: 5000 ou hub.docker.local: 5000.


en utilisant machine-ip que j'ai pris: Le push fait référence au référentiel [machine-ip: 5000 / my-alpine] Obtenez machine -ip: 5000 / v2 : http: le serveur a donné une réponse HTTP au client HTTPS


problème similaire et sans réponse.


3 Réponses :


0
votes

Ajoutez l'option insecure-registry dans la configuration du docker et redémarrez le service docker. Et puis essayez docker push en utilisant machine-ip:5000

Vérifiez ceci .


3 commentaires

J'ai mis un registre non sécurisé mais et l'erreur a changé en Http refusé! J'ai basculé le mode démon de windows vers les conteneurs linux et en mode linux, j'ai partagé un lecteur et réglé le volume et tout allait bien! mais lors de l'utilisation du mode conteneurs windows j'ai obtenu un message refusé par Http.


merci et j'ai mis insecure-registries mais l'erreur de serveur interne s'est reproduite. Après des heures d'essai, j'ai trouvé que lorsque je passe en mode linux tout va bien. donc en mode conteneur windows mon problème est toujours présent! :(


S'il est capable de pousser des images Linux, alors le paramètre de sécurité n'est pas le problème.



0
votes

Si vous configurez un registre sécurisé, vous devez vous connecter au registre Docker avec quelque chose comme ceci:

connexion docker --username = yourusername --email=email@domain.com: 5000

et vous pouvez le faire

docker push localhost: 5000 / my-alpine

De plus, à partir de gitBash , vérifiez si vous obtenez quelque chose avec curl

Essayez:

curl -X GET https: // myregistry: 5000 / v2 / _catalog

Vous devrez peut-être utiliser la combinaison username: pass avec curl . Bien sûr, vérifiez toujours si vous êtes un conteneur de registre docker en cours d'exécution ou fermé.


0 commentaires

0
votes

J'ai eu le même problème - capable de pousser des images Linux, mais pousser n'importe quelle image Windows donnerait le même 500: erreur de serveur interne. J'ai fait fonctionner cela en désactivant la validation, comme indiqué ici: https://github.com/docker / distribution / issues / 2232

Vous pouvez passer -e REGISTRY_VALIDATION_DISABLED = true sur la ligne de commande pour exécuter docker, ou ajouter REGISTRY_VALIDATION_DISABLED: 'true' à la section registry-> environment de docker-compose.yaml.

Exemple:

registry:
  image: registry:latest
  environment:
    REGISTRY_VALIDATION_DISABLED: 'true'

ou dans docker-compose.yaml:

docker run -d -e REGISTRY_VALIDATION_DISABLED=true registry:latest


0 commentaires