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!
3 Réponses :
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 . p>
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.
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é.
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
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.