2014-12-12 19 views
5

Görüntülerimi zorladığım Docker Hub hesabını değiştirmem gerekiyor. Benim .dockercfg dosya daha sonra (benim gerçek değerleri için olduğu gibi jenerik yer tutucular davranan account, image ve tag) Aşağıdaki ran güncellemek için docker login kullandı:Docker görüntüsünü yeni docker hub hesabına zorlamak,

docker push account/image:tag

Ben hemen aşağıdaki hatayı alıyorum:

The push refers to a repository [account/image] (len: 1) 
Sending image list 
2014/12/11 21:26:59 Error: Status 400 trying to push repository repo/image: 
"Access denied: <hash> is a private image" docker push account/image:tag 
returned exit code 1action docker push repo/image:tag failed 

Docker hub'ındaki özel bir depoya itmeye çalışıyorum ama auth'emin eşleştiğini iki kez kontrol ettim. Bu neden başarısız oluyor ve bunu nasıl düzeltebilirim?

cevap

0

Bunun nedenini hala tam olarak anlamadım ama nasıl düzeltileceğini anladım. Yerel makinemdeki tüm görüntüleri ve kapları imha ettim ve görüntüyü yeniden oluşturdum. Bunu yaptıktan sonra yeni hesaba geçebildim.

Benim kurarım, orijinal olarak oluşturduğum Docker görüntüsünün, önceki yapılarda var olan katmanlara ve eski hesabın kullanılabilir olmasına bağlı olmasıdır. Yeni hesaba geçtiğimde, Docker Hub'da artık var olmayan katmanlara bağlı bir görüntüyü itmeye çalışıyordum ve bu katman bulunamamıştı, bu da Docker Hub'ın erişmeye çalıştığım şeyi düşünmesine neden oluyordu. Aslında, aslında yoktu. Yukarıdakilerin hepsi oldukça saf bir varsayımdır, bu nedenle bu alanda daha fazla bilgi ve/veya deneyime sahip bir kişi tarafından aydınlanmaktan mutluluk duyarım.

0

Aynı sorunu yaşadım ve neden özel bir üst resim olduğu ortaya çıktı. here açıklandığı gibi, resminiz bir baz görüntünün üstüne ve çoğu durumda ebeveyn görüntülerine dayanır. En son değişikliklerinizi docker hub'ına aktarmaya çalıştığınızda, hesabınızın tüm ana görüntülere erişimi olmalıdır, aksi takdirde bu hatayla sonuçlanır. Benim durumumda, zorlamaya çalıştığım kullanıcı, üs olarak kullandığım imgeye erişemedi.

Özel görüntüyü hash ile kolayca tanımlayabilirsiniz.

docker images -a | grep <hash> 

sen işbirlikçilerinin listesine ile bastırıyorlar kullanıcı ekleme bu sorunu giderebilirsiniz özel depo erişiminiz varsa. Ancak, bunu yapmazsanız, kullanıcı için özel depoyu etiketlemeniz ve kalan değişiklikleri manuel olarak uygulamanız gerekir. Bu yardımcı olur

Umut;)

0

sadece burada aynı sorunla karşılaştı. Benim durumumda, Dockerfile'da "FROM ubuntu: latest" komutunu yazdım. Bu durumda, eski hesabımı kullanarak görüntüyü oluşturdum ve bunu, ubuntu'yu indirdim: onu oluşturmak için en son, ancak bu indirme önceki hesabımı kullanarak yapıldı, bu yüzden, ubuntu'yu kaldırdım: kullanılan temel görüntü) bilgisayarımdan ve resmimi yeniden oluşturdu. Bundan sonra, resmimi zorlayabildim.

0

Bu soruna da rastladım ve Bruno'nun yorumu düzeltildi. İşte resimlerinizi kaldırmak için hızlı bir bash yorum (Bu DockerFiles ve onları yeniden oluşturmak için yerinde otomasyon var varsayıyoruz): docker images | awk '{print $ 3}' | xargs docker rmi -f

0

En son Docker'ı ubuntu'dan yapıyorum: bu olduğunda güvenilir. Tüm görüntüleri silmek yardımcı olmadı.Üst resim etiketini güvenilirden eski güvenilirliğe (20150630) değiştirdim.