docker yetkisiz: kimlik doğrulama gerekli - başarılı oturum açma ile itme üzerine


101

Docker görüntüsünü (başarılı oturum açtıktan sonra) ana bilgisayarımdan gönderirken "yetkisiz: kimlik doğrulaması gerekli" mesajı alıyorum.

Detaylar aşağıda.

-bash-4.2# docker login --username=asamba --email=anand.sambamoorthy@gmail.com
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
  • Docker sürümü: 1.9.1 (hem istemci hem de sunucu)
  • http://hub.docker.com da oluşturulan depoya sahiptir (asamba / docker-whale).

/ Var / log / messages 403 gösteriyor, bu docker mı bilmiyorum. Aşağıya bakınız.

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

Herhangi bir yardım için minnettarız, daha fazla bilgiye ihtiyacınız olursa lütfen bana bildirin. Push'u -f ile de yaptım. Şanssız!


1
Cevabınızın yanındaki onay işaretini tıklayarak "yanıt" olarak işaretlerseniz, site yöneticisi ve aynı sorun hakkında bilgi arayan diğer kişiler için faydalı olacaktır :-) Bunu yapmanıza izin verilir (hatta teşvik edilir) Stack Overflow'da.
Cindy Meister

Yanıtlar:


88

Düzenle (13/08/2017)

@ KaraPirinc'in yorumuna dayanarak, docker sürüm 17'de oturum açmak için (Adım 1),

docker login -u username -p password

Ben de aynı sorunu yaşadım, bu şekilde çözüyorum.

1.Adım: Docker hub'da oturum açın

docker login --username=<user username> --email=<user email address>

Adım 2: Docker hub'da bir depo oluşturun . " mysqlserver: sql " diyelim .

docker push <user username>/mysqlserver:sql

7
Bu doğru cevap olmalı . docker loginayrıca parametreler olmadan da çalışır
blnc

5
Mükemmel çalışıyor. Ancak --email kullanımdan kaldırıldı .
IgorGanapolsky

(docker version 17): docker login -u username -p password
Yusuf Ismail Oktay

Güncelleme için teşekkürler. Cevabı yorumunuza göre güncelleyeceğim.
GPrathap

34

Gönderdiğiniz çözüm benim için çalışmıyor ...

İşte benim işime yarayan bu:

  1. Depoyu istenen isimle oluşturun.

  2. Görüntüyü işlerken, kullanıcı adı da dahil olmak üzere görüntüyü arşiv gibi adlandırın <dockerusername>/desired-name. Örneğin radu/desired-name,.


# Liman işçisi ps -a olsun -m "testi" -a "alex" taahhüt liman işçisi --nostalgic_morse burada bak kiti adı # nostalgic_morse alexcpn / grpc # liman işçisi itme alexcpn / grpc
Alex Punnen

28

TAMAM! boşver; Çözümü buldum. 403 HTTP'nin doğru URL'ye gitmediğinden şüpheleniliyor.

~/.docker/config.jsonVarsayılan olarak oluşturulan oturum açma kimlik bilgilerine sahip dosyayı değiştirin .

{
        "auths": {
                "docker.io": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "x.y@gmail.com"
                }
        }
}

to - docker.io -> index.docker.io/v1'deki değişikliği not edin. Değişim budur.

{
        "auths": {
                "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "x.y@gmail.com"
                }
        }
}

Umarım yardımcı olur.

Kimlik doğrulama alanının base64 olarak kodlanmış "kullanıcı adı: şifre" olması gerektiğini unutmayın. Örneğin: "kullanıcı adı: şifre" base64 kodlu "dXNlcm5hbWU6cGFzc3dvcmQ ="

böylece dosyanız şunları içerecektir:

"auth": "dXNlcm5hbWU6cGFzc3dvcmQ="

Bana epey zaman kazandırdın! Benim için de mükemmel çözüm.
Marco Lenzo

7
Benim için de çalıştı. İşte komut satırından aynı şey:sudo docker login -e me@example.com -u someuser -p somepass https://index.docker.io/v1/
Banjer

2
Teşekkürler @Banjer, -e parametresi kullanımdan kaldırıldı ve sudo'nun, sistemlerini düzgün bir şekilde kuranların çoğu için kullanılması gerekmiyor. Daha iyi bir çözüm şudur: docker login -u someuser https://index.docker.io/v1/Bu, şifreyi soracak ve komut geçmişinde bitmesini önleyecektir.
erb

19

heroku kullanıyorsanız, itmeden önce "heroku kapsayıcısı: giriş" i unutmadığınızdan emin olun.


7

Benzer şekilde yardımcı olmayan bir hata mesajıyla benzer bir sorunla karşılaşıyordum, ancak bunun nedeni, docker-machine tarafından yönetilen bir örneğe karşı oluşturduğum bir görüntüyü göndermeye çalıştığım için ortaya çıktı.

Örneğe giriş yaptığımda, yaptım docker loginve docker pushher şey yolunda gitti.


teşekkürler, docker oturum açma işlemi bağlantıda
Felix

7

Aynı sorunu yaşadım ama belirtilen url ile push ile düzelttim. as: docker login -u https://index.docker.io/v1/

konsol çıkışı:

The push refers to a repository [docker.io/<username>/richcity]
adc9144127c1: Preparing 
4db5654f7a64: Preparing 
ce71ae73bc60: Preparing 
e8e980243ee4: Preparing 
d773e991f7d2: Preparing 
bae23f4bbe95: Waiting 
5f70bf18a086: Waiting 
3d3e4e34386e: Waiting 
e72d5d9d5d30: Waiting 
8d1d75696199: Waiting 
bdf5b19f60a4: Waiting 
c8bd8922fbb7: Waiting 
unauthorized: authentication required

1010deiMac:dockerspace whoami$ docker login -u <username> https://index.docker.io/v1/
Password: 
Login Succeeded
1010deiMac:dockerspace whoami$ docker push <username>/richcity 
The push refers to a repository [docker.io/<username>/richcity]
adc9144127c1: Pushed 
4db5654f7a64: Pushed 
ce71ae73bc60: Pushed 
e8e980243ee4: Pushed 
d773e991f7d2: Pushed 
bae23f4bbe95: Pushed 
5f70bf18a086: Pushed 
3d3e4e34386e: Pushing [=============>                                     ] 45.07 MB/165.4 MB
e72d5d9d5d30: Pushed 
8d1d75696199: Pushing [>                                                  ] 1.641 MB/118.1 MB
bdf5b19f60a4: Pushing [============>                                      ]   142 MB/568.4 MB
c8bd8922fbb7: Pushing [========================>                          ] 59.44 MB/121.8 MB

5

Standart süreç oturum açmak ve ardından docker kayıt defterine itmek olsa da, bu özel sorunun üstesinden gelmenin püf noktası, aynı satırda kullanıcı adı ve şifre sağlayarak oturum açmaktır.

Yani :

docker login -u xxx -p yyy sampledockerregistry.com/myapp 
docker push sampledockerregistry.com/myapp

İşler

buna karşılık

docker login sampledockerregistry.com 
username : xxx
password : yyy
Login Succeeded

docker push sampledockerregistry.com/myapp

Başarısız


4

Giriş yapıp tüm konfigürasyonu kontrol etsem bile hala çalışmıyor !!!

Docker'ımı oluşturduğumda, repo adının önüne kullanıcı adımı koymayı unuttuğum ortaya çıktı.

docker build docker-meteor-build 

(başarıyla inşa edin)

Ve sonra depomu aktardığımda,

docker push myname/docker-meteor-build 

Gösterecek unauthorized authentication required

Öyleyse, çözüm derlemenin adıdır ve itme tamamen aynı olmalıdır

docker build myname/docker-meteor-build 
docker push myname/docker-meteor-build 

4

Yeni başlayanların karşılaştığı sorun, docker hub deposunu tıpkı bir maven deposu gibi ele alma eğiliminde olmamız ve birçok farklı dosya, klasör ve diğer içeriği içerebileceğini düşünmemizdir.

Öte yandan bir docker deposu sadece tek bir görüntüdür, başka hiçbir şey içermez. Aynı görüntünün farklı sürümlerini tutabilir, ancak yalnızca bir görüntü içerecektir.

Bu nedenle, docker hub'daki deponuzu, içine aktarmak istediğiniz görüntüyle aynı adla adlandırın ve dockerhub kullanıcı adınızı önek olarak kullanın. Örneğin, kullanıcı adınız benim kullanıcı adınız ve görüntünüzün adı docker-whale ise , dockerhub deponuzu docker-whale olarak adlandırdığınızdan ve görüntünüzü etiketlemek ve depoya göndermek için aşağıdaki komutları kullandığınızdan emin olun :

docker logout                                   # to make sure you're logged out and not cause any clashes
docker tag <imageId> myusername/docker-whale    # use :1.0.0 for specific version, default is 'latest'
docker login --username=myusername              # use the username/pwd to login to docker hub
docker push myusername/docker-whale             # use :1.0.0 for pushing specific version, default is 'latest'

1
Bu gönderiyi görene kadar "reddedildi: kaynağa erişim talep edilmedi" mesajı almaya devam ettim. Sonunda, ilk "docker push" programımı bir eğitici tarafından elle tutulmadan çalışmayı başardım. Çok teşekkürler!
glendon

2

Yeni bir özel resmi ilk kez zorluyorsanız, aboneliğinizin bu ekstra resmi desteklediğinden emin olun.

Docker, yalnızca 5 için ödeme yapsanız, ancak 6. görüntüyü itmeseniz bile, adlandırılmış 6 özel görüntüye sahip olmanıza izin verir. Bilgilendirici bir mesajın olmaması kafa karıştırıcı ve rahatsız edicidir.


2

İşte benim durumum için çözüm (özel depolar, ücretsiz hesap planı)

https://success.docker.com/Datacenter/Solve/Getting_%22unauthorized%3A_authentication_required%22_when_trying_to_push_image_to_DTR

Aktarılacak görüntü oluşturma adı, depolarla aynı ada sahip olmalıdır.

Örnek: docker hub'daki depolar: accountName / resposName görüntü derleme adı "accountName / resposName" -> docker build -t accountName / resposName

ardından docker push accountName / resposName: latest yazın

Bu kadar.


Bağlantı artık bozuk. Lütfen düzeltin.
Eric Bolinger

1

Benim için işe yarayan şey, yeni bir depo oluşturmak ve görüntüyü yeniden adlandırmaktı.

$ docker tag image_id myname/server:latest


1

Özel görüntüler için daha fazla yuvanız olduğundan emin olun.

Benim durumumda, bir kullanıcıyı bir kuruluşa dönüştürdüm ve o ücretsiz bir özel imajını kaybetti, bu yüzden işe yarayan önceki itmeler artık çalışmıyordu.


1

Benim sorunum 5 dakika sonra geçersiz bir Yetkilendirme jetonuydu. Görüntü boyutu nedeniyle itme 5 dakikadan fazla sürdü.

"Yetkilendirme belirteci süresini" 10 dakikaya çıkararak sorunu düzelttim.

görüntü açıklamasını buraya girin


Bu ayarı nerede buldunuz? Bulamadım
Vic Seedoubleyew

2
Bu sorunu önlemek için yaptığım hack, docker loginyükleme tamamlanmadan kısa bir süre önce başka bir terminal penceresinde çalıştırmaktı
Vic Seedoubleyew

@VicSeedoubleyew Admin Area -> Settings -> CI/CD -> Container Registry. URL yolu: /admin/application_settings/ci_cd.
Manuel Schmitzberger

Cevap için teşekkürler. Neyin idare alanı? Bunlardan hiçbirini dockerhub'da görmüyorum
Vic Seedoubleyew

Bu, kendi bir gitlab örneği içindir. Bunu dockerhub'da yapılandırabilir misin emin değilim.
Manuel Schmitzberger

0

Docker repositry adınızın yerel docker repo adınızla eşleştiğinden emin olun. Örneğin yerel repo adınız "kavashgar / nodjsapp" olup olmadığını söyleyelim

Docker hub'da "kavashgar" repo adlarına sahip olmanız gerekir


0

yapılandırma dosyanıza ~ / .docker / config.json ekleyin

{
        "auths": {
             "https://index.docker.io/v1/": {
                        "auth": "XXXXXXXXXXXXX",
                        "email": "my_email@gmail.com"
                }
        }
}

XXXXX, kullanıcı adınızın base64 kodlamasıdır : password (: dahildir) https

benim durumumda bir çekme ile aynı hatayı aldım. sorun (pencerelerin altında) çift docker çalıştırma işlemi tarafından tetiklendi, bu nedenle hepsini bir sonlandırın ve bir hizmeti yeniden başlatın ve işe yarıyor.


0

Zaten iyi cevaplar var ama bir tanesinden bahsetmek istiyorum - İtmeden önce bir depo oluşturmanız GEREKMEZ.

Benim için sorun, oturum açtığım hesabın kullanıcı adını doğru ayarlamamış olmamdı. Ancak doğru kullanıcı adı görüntünün önüne (örneğin YOURNAME/YOURIMAGE) etiketi aracılığıyla ayarlandıktan sonra, önceden yeni bir depo oluşturmadan onu itebilirsiniz.

sudo docker tag IMAGE:VERSION USERNAME/IMAGE:VERSION
sudo docker push USERNAME/IMAGE:VERSION

0

Burada aynı sorun, görüntüyü iterek:

unauthorized: authentication required

Ben ne yaptım:

docker login --username=yourhubusername --email=youremail@company.com

Hangi basıldı:

- e-posta kullanımdan kaldırıldı (ancak giriş yine de başarılı oldu)

Çözüm: En son oturum açma sözdizimini kullanın.

docker login

Hem soracaktır kullanıcı adı ve şifre etkileşimli. Sonra görüntü itme sadece çalışır.

Yeni sözdizimini kullandıktan sonra bile, ~/.docker/config.jsonoturum açtıktan sonra şöyle görünüyor:

{
    "auths": {
        "https://index.docker.io/v1/": {}
    },
    "credsStore": "osxkeychain"
}

Yani kimlik bilgisi macOS'un anahtar zincirinde.


0

Ecr deposunda sudo docker push / sudo docker pull için benzer bir hata aldım.Bunun nedeni kullanıcımda (abc) aws cli ve root kullanıcımda yüklü docker.Kullanıcımda sudo docker push çalıştırmayı denedim (abc)

Bu sorunu, rootta aws cli yükleyerek, aws yapılandırarak root içinde yapılandırarak ve sudo docker push to ecr'de root kullanıcısına çalıştırarak düzeltildi



0

Xxx / .docker / config.json dosyasını işlemek için bir yerde mv edebilirsiniz. Ardından yeni config.json dosyası oluşturmak için tekrar oturum açmayı deneyin.

#mv xx/.docker/config.json xx/.docker/config_old.json
#docker login https://index.docker.io/v1/
Login with your Docker ID to push and pull images from Docker Hub. If you don't have a Docker ID, head over to https://hub.docker.com to create one.
Username: YOUR USERNAME
Password: YOUR PASSWORD
WARNING! Your password will be stored unencrypted in /xxx/.docker/config.json.
Configure a credential helper to remove this warning. See https://docs.docker.com/engine/reference/commandline/login/#credentials-store

Login Succeeded

0

Eğer koşuyorsan windows 7 docker Registry

  1. Çalıştırmayı başlat **Docker Quick Start terminal**(bu terminal bağlantıyı etkinleştirir) Siz görüntüleri itinceye kadar, bu belirteci canlı tutacaktır.
  2. Oturum aç docker login
  3. Resmi kullanıcı adıyla etiketlediğinizden emin olun

    docker build -f Dockerfile -t 'username'/imagename

  4. itme resmi

    docker image push username/imagename

Not : görüntü adının tümü küçük harf


0

Benzer bir problemim vardı.

Error response from daemon: Get https://registry-1.docker.io/v2/hadolint/hadolint/manifests/latest: unauthorized: incorrect username or password

Komutla başarılı bir şekilde giriş yapsam bile docker loginherhangi bir çekmenin başarısız olduğunu öğrendim . Temizlemeye çalıştım~/.docker/config.json ama hiçbir şey düzelmedi.

Yapılandırma dosyasına baktığımda kimlik bilgilerinin oraya kaydedilmediğini, ancak bir "credsStore": "secretservice". Linux'ta bu seahorseveya Passwords and Keysaracı olur. Orayı kontrol ettim ve tüm docker hub oturum açma bilgilerini temizledim. Bundan sonra, yeni bir docker oturumu beklendiği gibi çalıştı.


0

Çevrimiçi bulabildiğim tüm yöntemleri denedim ve başarısız oldum. Sonra bu yazıyı okudum ve @Alex cevabından bazı fikirler alıyorum. Daha sonra config.json dosyamda kullanılan "" credsStore ":" osxkeychain "" hakkında arama yapıyorum. Oturumu kapatmak ve ardından tekrar oturum açmak için bu bağlantıyı https://docs.docker.com/engine/reference/commandline/login/ izliyorum . Son olarak, imajımı başarıyla itebilirim.

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.