Ao enviar a imagem do docker (após login bem-sucedido) do meu host, recebo "não autorizado: autenticação necessária".
Detalhes abaixo.
-bash-4.2# docker login --username=asamba [email protected]
WARNING: login credentials saved in /root/.docker/config.json
*Login Succeeded*
-bash-4.2#
-bash-4.2# docker push asamba/docker-whale
Do you really want to push to public registry? [y/n]: y
The push refers to a repository [docker.io/asamba/docker-whale] (len: 0)
faa2fa357a0e: Preparing
unauthorized: authentication required
- Versão do Docker: 1.9.1 (cliente e servidor)
- http://hub.docker.com tem o repositório criado também (asamba / docker-whale).
O / var / log / messages mostra 403, não sei se este docker. Ver abaixo.
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884872524Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}"
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.884988574Z" level=error msg="Handler for POST /v1.21/images/asamba/docker-whale/push returned error: Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced"
Apr 16 11:39:03 localhost journal: time="2016-04-16T11:39:03.885013241Z" level=error msg="HTTP Error" err="Error: Status 403 trying to push repository asamba/docker-whale to official registry: needs to be forced" statusCode=403
Apr 16 11:39:05 localhost journal: time="2016-04-16T11:39:05.420188969Z" level=info msg="{Action=push, Username=asamba, LoginUID=1001, PID=2125}"
Apr 16 11:39:06 localhost kernel: XFS (dm-4): Mounting V4 Filesystem
Apr 16 11:39:06 localhost kernel: XFS (dm-4): Ending clean mount
Apr 16 11:39:07 localhost kernel: XFS (dm-4): Unmounting Filesystem
Qualquer ajuda é apreciada, por favor me avise se precisar de mais informações. Eu fiz o push com -f também. Sem sorte!
Respostas:
Editar (13/08/2017)
Com base no comentário de @ KaraPirinc, no docker versão 17 para fazer login (Etapa 1),
Eu também tive o mesmo problema. É assim que resolvo.
Etapa 1: faça login no hub do docker
Passo 2: crie um repositório no hub docker . digamos " mysqlserver: sql ".
fonte
docker login
também funciona sem os parâmetrosA solução que você postou não está funcionando para mim ...
Isto é o que funciona para mim:
Crie o repositório com o nome desejado.
Ao enviar a imagem, nomeie a imagem como o repositório, incluindo o nome de usuário
<dockerusername>/desired-name
. Por exemploradu/desired-name
,.fonte
ESTÁ BEM! deixa pra lá; Eu encontrei a solução. com 403 Suspeito de que o HTTP não está indo para o URL correto.
Altere o arquivo que tem as credenciais de login armazenadas
~/.docker/config.json
do padrão gerado depara - Observe a mudança de docker.io -> index.docker.io/v1. Essa é a mudança.
Espero que ajude.
Observe que o campo de autenticação deve ser 'nome de usuário: senha "codificado em base64. Por exemplo:" nome de usuário: senha "codificado em base64 é" dXNlcm5hbWU6cGFzc3dvcmQ = "
portanto, seu arquivo conteria:
fonte
sudo docker login -e [email protected] -u someuser -p somepass https://index.docker.io/v1/
docker login -u someuser https://index.docker.io/v1/
Isso vai pedir a senha, evitando que termine no histórico de comandos.se você estiver usando o heroku, certifique-se de não se esquecer de "heroku container: login" antes de empurrar.
fonte
Eu estava tendo um problema semelhante com uma mensagem de erro igualmente inútil, mas acabou sendo porque eu estava tentando enviar uma imagem que eu havia criado em uma instância gerenciada da máquina docker.
Quando loguei na própria instância, fiz
docker login
edocker push
tudo funcionou bem.fonte
Eu tive o mesmo problema, mas corrigi-lo com push com url especificado. como: docker login -u https://index.docker.io/v1/
saída do console:
fonte
Embora o processo padrão seja fazer o login e enviar para o docker Registry, o truque para superar esse problema específico é fazer o login fornecendo o nome de usuário e a senha na mesma linha.
Assim :
Trabalho
enquanto que
Falha
fonte
Mesmo eu logado e verificado toda a configuração, ainda não funciona !!!
Descobri que, quando crio meu docker, esqueço de colocar meu nome de usuário antes do nome do repo
(construir com sucesso)
E então, quando empurrei para o meu repositório, usei
Vai mostrar o
unauthorized authentication required
Então, a solução é o nome do build e o push deve ser exatamente o mesmo
fonte
O problema que os novatos enfrentam é que tendemos a tratar o repositório docker hub como um repositório maven e pensar que ele pode conter muitos arquivos, pastas e outros conteúdos diferentes.
Por outro lado, um repositório docker é apenas uma única imagem, não contém mais nada. Ele pode conter diferentes versões da mesma imagem, mas conterá apenas uma imagem.
Portanto, nomeie seu repositório no hub do docker com o mesmo nome da imagem que você deseja enviar para ele e use seu nome de usuário do dockerhub como prefixo. Por exemplo, se o seu nome de usuário é myusername e o nome da imagem é docker-whale , certifique-se de nomear seu repositório dockerhub como docker-whale e use os comandos abaixo para marcar e enviar sua imagem para o repositório:
fonte
Se você estiver enviando uma nova imagem privada pela primeira vez, certifique-se de que sua assinatura seja compatível com essa imagem extra.
O Docker permite que você tenha 6 imagens privadas nomeadas, mesmo se você pagar apenas por 5, mas não para enviar a 6ª imagem. A falta de uma mensagem informativa é confusa e irritante.
fonte
Aqui está a solução para o meu caso (repositórios privados, plano de conta grátis)
https://success.docker.com/Datacenter/Solve/Getting_%22unauthorized%3A_authentication_required%22_when_trying_to_push_image_to_DTR
O nome da compilação da imagem a enviar deve ter o mesmo nome dos repositórios.
Exemplo: repos no hub docker é: accountName / resposName nome de compilação de imagem "accountName / resposName" -> docker build -t accountName / resposName
em seguida, digite docker push accountName / resposName: mais recente
Isso é tudo.
fonte
O que funcionou para mim foi criar um novo repositório e renomear a imagem com
$ docker tag image_id myname/server:latest
fonte
Certifique-se de ter mais slots para imagens privadas.
No meu caso, eu converti um usuário em uma organização e ele perdeu uma imagem privada gratuita, então push anteriores que funcionaram, não funcionaram mais.
fonte
Meu problema era um token de autorização inválido após 5 minutos. O envio demorou mais de 5 minutos devido ao tamanho da imagem.
Eu corrigi isso aumentando a "Duração do token de autorização" para 10 minutos.
fonte
docker login
em outra janela de terminal pouco antes de terminar o uploadAdmin Area -> Settings -> CI/CD -> Container Registry
. caminho url:/admin/application_settings/ci_cd
.Certifique-se de que o nome do repositório docker corresponda ao nome do repositório docker local. por exemplo, digamos que seu nome de repositório local "kavashgar / nodjsapp"
então você também deve ter um nome de repo "kavashgar" no hub do docker
fonte
em seu arquivo de configuração ~ / .docker / config.json add
onde XXXXX é a codificação base64 do seu nome de usuário: senha (o: está incluído) de https://hub.docker.com
no meu caso tive o mesmo erro com um pull. o problema (no Windows) foi provocado pelo processo de execução do docker duplo, então um mate todos e reinicie um serviço e ele funciona.
fonte
Já houve boas respostas, mas eu gostaria de mencionar uma - você NÃO precisa criar um repositório com antecedência antes de enviá-lo.
O problema para mim é que não configurei o nome de usuário correto da conta na qual fiz login. Mas uma vez que o nome de usuário correto é definido antes da imagem (por exemplo
YOURNAME/YOURIMAGE
) por meio de sua tag, você pode enviá-lo sem criar um novo repositório com antecedência.fonte
O mesmo problema aqui, durante o envio da imagem:
O que eu fiz:
Que imprimiu:
Solução: use a sintaxe de login mais recente.
Ele solicitará o nome de usuário e a senha interativamente. Então, o push de imagem simplesmente funciona.
Mesmo depois de usar a nova sintaxe, meu
~/.docker/config.json
fica assim depois de logado:Portanto, a credencial está nas chaves do macOS.
fonte
Recebi um erro semelhante para sudo docker push / sudo docker pull no repositório ecr. Isso ocorre porque aws cli instalado em meu usuário (abc) e docker instalado em usuário root. Tentei executar sudo docker push em meu usuário (abc)
Corrigido isso instalando o aws cli na raiz, configurando o aws usando o aws configure na raiz e executando sudo docker push para ecr no usuário root
fonte
Experimente
docker logout
primeiro, depois volte a iniciar comdocker login
fonte
Você pode carregar o arquivo xxx / .docker / config.json em algum lugar para manipulá-lo. Em seguida, tente fazer o login novamente para criar o novo arquivo config.json.
fonte
Se você está correndo
windows 7 docker Registry
**Docker Quick Start terminal**
execução (este terminal permite a conexão) Até que você envie as imagens, isso manterá o token ativo.docker login
Certifique-se de marcar a imagem com o nome de usuário
docker build -f Dockerfile -t 'username'/imagename
empurrar imagem
docker image push username/imagename
Nota : o nome da imagem está todo em letras minúsculas
fonte
Eu tive um problema parecido.
Eu descobri que mesmo se eu logar com sucesso com o
docker login
comando, qualquer pull falhou. Tentei limpar,~/.docker/config.json
mas nada melhorou.Olhando no arquivo de configuração, vi que as credenciais não foram salvas lá, mas em a
"credsStore": "secretservice"
. No Linux, isso é a ferramentaseahorse
ouPasswords and Keys
. Eu verifiquei lá e limpei todo o login do hub do docker. Depois disso, um novo login do docker funcionou conforme o esperado.fonte