ปฏิเสธแล้ว: การเข้าถึงทรัพยากรที่ร้องขอถูกปฏิเสธ: นักเทียบท่า


372

ฉันกำลังติดตามลิงก์นี้เพื่อสร้างอิมเมจนักเทียบท่าแรกของฉันและไปได้สำเร็จและตอนนี้ฉันกำลังพยายามผลักดันอิมเมจนี้ไปยังที่เก็บนักเทียบท่าของฉันจากลิงค์นี้ แต่เมื่อใดก็ตามที่ฉันพยายามที่จะผลักดันภาพนี้ไปยังที่เก็บฉันได้รับข้อผิดพลาดประเภทนี้

denied: requested access to the resource is denied

ป้อนคำอธิบายรูปภาพที่นี่

ใครช่วยบอกใบ้ถึงปัญหานี้ได้บ้าง? ความช่วยเหลือใด ๆ ที่จะชื่นชม

หมายเหตุ: ฉันได้เข้าสู่ระบบนักเทียบท่าเรียบร้อยแล้ว


ตรวจสอบให้แน่ใจว่าคุณไม่ได้ทำผิดพลาด: stackoverflow.com/a/59626146/4954434
Jithin Pavithran

ตรวจสอบให้แน่ใจว่าคุณยืนยันอีเมลของคุณ หากคุณกำลังคิดว่าใครจะทำสิ่งที่งี่เง่าฉันไม่ได้ยืนยันอีเมลของฉันก่อนผลัก
Luv33preet

คำตอบ:


550

คุณอาจต้องเปลี่ยน repo นักเทียบท่าของคุณเป็นส่วนตัวก่อนที่นักเทียบท่าดัน

ขอบคุณคำตอบที่ให้บริการโดยDean Wuและความคิดเห็นนี้โดยsesก่อนที่จะผลักดันอย่าลืมออกจากระบบจากนั้นลงชื่อเข้าใช้จากบรรทัดคำสั่งไปยังบัญชีศูนย์กลางนักเทียบท่าของคุณ

# you may need log out first `docker logout` ref. https://stackoverflow.com/a/53835882/248616
docker login

ตามเอกสาร :

You need to include the namespace for Docker Hub to associate it with your account.
The namespace is the same as your Docker Hub account name.
You need to rename the image to YOUR_DOCKERHUB_NAME/docker-whale.

ดังนั้นหมายความว่าคุณต้องติดแท็กรูปภาพก่อนกด:

docker tag firstimage YOUR_DOCKERHUB_NAME/firstimage

จากนั้นคุณควรจะสามารถผลักดันมัน

docker push YOUR_DOCKERHUB_NAME/firstimage

43
ไม่ได้สำหรับฉัน. ฉันลองชุดค่าผสมทั้งหมด[host]/[namespace]/[repo]และยังคงเป็นข้อผิดพลาดเดียวกัน (หมายถึงฉันมีองค์กรและบัญชีของฉันเป็นเนมสเปซ) docker login ...แม้จะพยายาม ฉันไม่สามารถผลักดัน: - |
nicerobot

1
hii ฉันทำตามคำสั่งของคุณได้รับข้อผิดพลาด --- การตอบสนองข้อผิดพลาดจาก daemon: ไม่มีภาพดังกล่าว: ubuntu-nodejs: ล่าสุด
Yash

34
คำตอบนี้ไม่ควรถูกทำเครื่องหมายว่ายอมรับ! วิธีการแก้ปัญหาที่ให้ไว้ชัดเจนไม่ทำงานตามที่คนอื่น ๆ ระบุไว้
SamDevx

6
ฉันมีปัญหาเดียวกันและปรากฎว่าฉันไม่ได้เข้าสู่ระบบอย่างถูกต้อง "การเข้าสู่ระบบนักเทียบท่า" ทำงานอย่างเชื่องช้าแสดงว่า "การเข้าสู่ระบบสำเร็จ" แม้ว่าฉันจะป้อนรหัสผ่านผิด ดังนั้นเพื่อเข้าสู่ระบบอย่างเหมาะสมฉันใช้ "เข้าสู่ระบบนักเทียบท่า <url> --username = <username>" โพสต์สิ่งนี้ "นักเทียบท่าดัน" ทำงานตามที่คาดไว้
Devesh Chanchlani

2
คำตอบนี้ไม่สมบูรณ์และไม่ได้ผลสำหรับฉัน Venu S ให้คำตอบที่สมบูรณ์ซึ่งแก้ปัญหานี้ให้ฉันได้
rm.rf.etc

184

ฉันได้รับปัญหาเดียวกันขณะที่ลงเรียนหลักสูตรนักเริ่มต้น ฉันแก้ไขปัญหาด้วยการdocker loginโทรหานักเทียบท่าก่อนโทร


8
FWIW ผมได้รับ ข้อมูลประจำตัวของข้อผิดพลาดที่ได้รับdocker loginใน sudo docker loginทำงานให้ฉัน สิ่งนี้ทำให้ฉันสามารถผลักดัน repo ส่วนตัวของฉัน
johnsampson

1
เห็นได้ชัดว่าการสัมมนาผ่านเว็บของ Docker ล้าสมัยแล้ว
Luís de Sousa

Caveat with sudo - ดูคำตอบของฉัน
rhoerbe

80

ฉันมีปัญหาเดียวกัน แต่คำตอบที่ยอมรับได้ที่นี่ไม่ได้ผลสำหรับฉัน ฉันลองทำตามขั้นตอนสองสามขั้นและสามารถเดินไปรอบ ๆ เพื่อผลักดันมันได้ในที่สุด หวังว่านี่จะช่วยใครซักคน

นี่คือขั้นตอนที่ใช้ได้ผลสำหรับฉัน:

1) เข้าสู่ระบบที่นักเทียบท่า

docker login -u sirimalla

2) ติดแท็กภาพของคุณ

ชื่อภาพของฉันที่นี่คือ: mylocalimageและโดยค่าเริ่มต้นจะมีแท็ก: ล่าสุด
และชื่อผู้ใช้ของฉันคือ: sirimallaตามที่ลงทะเบียนกับนักเทียบท่าเมฆและฉันสร้างพื้นที่เก็บข้อมูลสาธารณะชื่อ: dockerhub

ดังนั้นที่เก็บข้อมูลส่วนตัวของฉันกลายเป็นตอนนี้: sirimalla / dockerhub และฉันต้องการผลักดันภาพของฉันด้วยแท็ก:myfirstimagepush

ฉันติดแท็กเป็นด้านล่าง:

docker tag mylocalimage:latest sirimalla/dockerhub:myfirstimagepush

3) ผลักภาพไปยังพื้นที่เก็บข้อมูลนักเทียบท่าส่วนตัวของฉันดังต่อไปนี้

docker push sirimalla/dockerhub:myfirstimagepush

และมันก็ผลักไปสู่ ​​repo นักเทียบท่าส่วนตัวของฉัน


2
คำตอบนี้แก้ปัญหาของฉันได้ นี่ควรเป็นคำตอบที่ยอมรับได้ คำตอบอื่น ๆ ไม่สมบูรณ์และไม่ได้ผลสำหรับฉัน ยกตัวอย่างเช่นคำตอบอื่น ๆ docker loginทำให้การพูดถึงไม่มี docker loginจนกระทั่งมาถึงกระทู้นี้ผมไม่ทราบเกี่ยวกับ
rm.rf.etc

โดยทั่วไปคุณควรจะใช้ sudo prefixing คำสั่งทั้งหมดของคุณโทษprojectatomic.io/blog/2015/08/...
wmitchell

Caveat with sudo - ดูคำตอบของฉัน
rhoerbe

1
นี่คือลูกสุนัข
Dave Hodgkinson

1
ใช่คำตอบนี้แก้ปัญหาของฉันได้เท่านั้น โปรดอ้างอิงผู้ที่ต้องการแก้ไขปัญหานี้
Maha Lak

42

สิ่งสำคัญที่ควรทราบคือเมื่อคุณแท็กรูปภาพของคุณคุณแท็กโดยใช้เนมสเปซและจากนั้นที่เก็บ / mydevrepo ของคุณ สิ่งนี้ทำให้ฉันสับสนเมื่อติดตามเอกสารนักเทียบท่า หลังจากนั้นฉันก็ใช้:

docker login

และจากนั้นผมผลักดันให้ภาพของฉันโดยใช้ชื่อที่ติดแท็ก '

docker push {namespace}/mydevrepo

39

ใช้คำสั่งด้านล่าง:

$ docker login
<enter user name and password for Docker Hub Repository>

$ docker tag first-image {docker-hub-username}/{default-repo-folder-name}:first-image

$ docker push {docker-hub-username}/{default-repo-folder-name}:first-image

เช่นฉันมีที่เก็บสาธารณะเช่น manjeet86 / docker-repo ดังนั้นคำสั่งจะเป็น:

$ docker tag first-image manjeet86/docker-repo:first-image

$ docker push manjeet86/docker-repo:first-image

เพิ่งเห็น:แทนที่จะ/เป็นกลอุบาย มันใช้งานได้สำหรับฉัน ผมไม่ทราบว่ามันจะช่วยให้คุณแท็กด้วย/เช่นกันในสถานที่ของ:แต่ที่อาจจะเพื่อวัตถุประสงค์อื่น ๆ

https://docs.docker.com/engine/reference/commandline/tag/#examples


1
นี่คือสิ่งที่ใช้ได้ผลสำหรับฉันใช้:แทน/ขอบคุณ
กริช

คำอธิบายที่เป็นไปได้สำหรับปัญหาในหัวข้อนี้: github.com/moby/moby/issues/31760#issuecomment-309812486
gp

ขอบคุณนั่นมัน ควรจะเป็นคำตอบที่ยอมรับได้ imho :)
469

10

วิธีที่นักเทียบท่าจัดการ ID ผู้ใช้และที่เก็บอาจทำให้สับสนเล็กน้อย สมมติว่าคุณสร้างบัญชีผู้ใช้ xyz บนศูนย์กลางนักเทียบท่า xyzบัญชีใหม่โดยอัตโนมัติกำหนดใน namespace จากนั้นคุณสร้างพื้นที่เก็บข้อมูลที่เรียกว่า myrepo ชื่อที่เก็บจะเป็นจริงxyz/myrepoชื่อพื้นที่เก็บข้อมูลจริงจะเป็น

ในการผลักดันภาพคุณควรทำ:

docker push docker.io/xyz/myrepo

คุณสามารถเพิ่ม ": ล่าสุด" หรือแท็กอื่นหากจำเป็น

หากคุณได้รับrequested access to the resource is deniedข้อความแสดงข้อผิดพลาด:

  1. ไปที่https://hub.docker.com/และลงชื่อเข้าใช้ด้วยชื่อ xyz
  2. คลิกที่ที่เก็บของคุณ xyz / myrepo
  3. คลิกที่ผู้ทำงานร่วมกัน
  4. เพิ่ม xyz เป็นผู้ทำงานร่วมกัน

ดังนั้นหมายความว่าเราไม่สามารถส่งภาพจากที่เก็บสาธารณะของบุคคลที่สามได้
sdinesh94

ไม่ได้ผลสำหรับฉัน :(
Nom1fan

10

ไม่แน่ใจว่าเกิดอะไรขึ้นกับนักเทียบท่าฮับ แต่ไม่มีวิธีแก้ปัญหาที่โพสต์ให้ฉัน นี่คือการแก้ไขที่ทำให้ฉันเมื่อวันที่ Jan-2018:

  1. ไปที่ hub.docker.com และเปลี่ยนที่เก็บของคุณเป็นแบบส่วนตัว
  2. ในเปลือกของคุณทำ:

docker images

REPOSITORY TAG IMAGE ID CREATED SIZE verse_gapminder_gsl latest 023ab91c6291 3 minutes ago 1.975 GB verse_gapminder latest bb38976d03cf 13 minutes ago 1.955 GB rocker/verse latest 0168d115f220 3 days ago 1.954 GB

docker tag bb38976d03cf dockhubusername/verse_gapminder:mytag

docker login docker.io

docker push dockhubusername/verse_gapminder:mytag

  1. กลับไปที่ศูนย์กลางนักเทียบท่าและเปลี่ยน repo กลับสู่สาธารณะ ที่ทำงานให้ฉัน

8

นักเทียบท่ายังมีข้อ จำกัด เกี่ยวกับจำนวนที่เก็บส่วนตัวที่คุณมี หากคุณกำลังสร้างที่เก็บส่วนตัวโดยการกดจากเครื่องของคุณมันจะสร้างที่เก็บ แต่ไม่มีอะไรเพิ่มเติมที่สามารถผลักไปที่มันหรือดึงออกมาจากมันและคุณจะได้รับข้อผิดพลาด "ร้องขอการเข้าถึงทรัพยากรถูกปฏิเสธ"


จะผลักดันให้เป็น repo สาธารณะได้อย่างไร
Raja Anbazhagan

7

ระบบปฏิบัติการ: Ubuntu16.04

เหตุผล: ฉันลบไฟล์ปรับแต่งไคลเอ็นต์ ( ~ / .docker / config.json )

สารละลาย:

  • รีสตาร์ทตัวเทียบท่า บริการนักเทียบท่าเริ่มต้นใหม่
  • ต้องป้อนข้อมูลเข้าสู่ระบบจากนั้นสร้างไฟล์กำหนดค่าโดยอัตโนมัติ
    นักเทียบท่าเข้าสู่ระบบ --username = yourdockerhubername --email=youremail@company.com

1
นี่เป็นทางออกเดียวที่ได้ผลสำหรับฉัน ฉันได้อัพเกรด Docker ของฉันแล้วด้วยเหตุผลบางอย่าง mvn dockerfile: การกดล้มเหลวด้วยข้อยกเว้นนี้ การลบ config.json นี้แก้ไขแล้ว
anand1st

สิ่งนี้ช่วยฉันด้วย ฉันรู้ว่าการเข้าสู่ระบบอย่างใดอย่างหนึ่งฉันไม่ควรใส่ url หรือถ้าฉันต้องการระบุ url ศูนย์กลางนักเทียบท่าฉันควรใส่docker login https://index.docker.io/v1/ -u=yourusername
Ronan Quillevere

7

ปัญหาของฉันคือการใช้อักขระที่ไม่ถูกต้อง (พิเศษ /) ในชื่อภาพของฉัน:

myusername/something/image

เป็นชื่อภาพที่ไม่ถูกต้อง ลองใช้ myusername / something-image หวังว่านี่จะช่วยใครซักคน


ข้อความแสดงข้อผิดพลาดที่น่ากลัว! ฉันกำลังทำสิ่งเดียวกัน นอกจากนี้ก็จะไม่อนุญาตให้ทำซ้ำอักขระพิเศษ__เช่น
ijoseph

มันใช้งานได้สำหรับฉันขอบคุณ!
เคนนีลี

6

ฉันมีปัญหาเดียวกันวันนี้ สิ่งเดียวที่ใช้ได้ผลสำหรับฉันคือการลงชื่อเข้าใช้"docker.io"อย่างชัดเจน:

docker login docker.io

ฉันลองใช้ชื่ออื่นหลายชื่อและการเข้าสู่ระบบจะปรากฏขึ้น แต่มันจะส่งผลให้เกิดข้อผิดพลาดต่อไปนี้

การเข้าถึงทรัพยากรที่ร้องขอถูกปฏิเสธ


2
นี่คือสิ่งที่แก้ไขปัญหาสำหรับฉันด้วย ฉันพยายามdocker loginโดยไม่ประสบความสำเร็จ แต่docker.ioท้ายที่สุดก็มีกลอุบาย
jooks

นี่มันสำหรับฉัน
Glitcher

การเข้าสู่ระบบอย่างชัดเจนเพื่อ docker.io ไม่ทำงานสำหรับฉัน ลงชื่อเข้าใช้ทำงานในอดีตหยุดทำงานทันที
rhoerbe

5

ฉันอยู่กับปัญหานี้เช่นกันฉันทดสอบวิธีแก้ปัญหาที่นี่ในปัจจุบัน แต่ไม่มีประโยชน์ฉันลงชื่อเข้าใช้อย่างถูกต้องอย่างน้อยก็ตามผลลัพธ์ของdocker loginแต่ยังฉันไม่สามารถดันภาพได้ สิ่งที่ได้ผลในที่สุดก็คือการทำ:

docker logout

และdocker loginอีกครั้งมันเป็นเรื่องเล็กน้อย ฉันไม่แน่ใจว่าเกิดอะไรขึ้น แต่บังคับให้ลงชื่อเข้าใช้ใหม่ทำงาน


1
มันช่วยฉันด้วย!
Levente Orbán

1
ใช่ด้วยการออกจากระบบมันกลับมาใช้งานได้สำหรับฉัน ขอบคุณ!
Nam G VU

4

หากคุณประสบปัญหานี้ในขณะที่ใช้ Azure Container Registry คุณสามารถแก้ไขได้โดยลงชื่อเข้าใช้รีจิสทรีของคุณก่อน

docker login yourregistry.azurecr.io

จากนั้นแท็กรูปภาพของคุณให้ตรงกับชื่อโฮสต์ของรีจิสทรี

docker image tag yourimagename:[version] yourregistry.azurecr.io/yourimagename:[version]

จากนั้นในที่สุดก็ผลักดันมัน

docker push yourregistry.azurecr.io/yourimagename:[version]

1
มาจาก Azure นี่คือสิ่งที่ช่วยได้! ไม่ใช่เนมสเปซ แต่เป็นชื่อโฮสต์ของรีจิสตรีที่เป็นส่วนแรกของแท็ก!
binaryguy

4

สำหรับผู้ที่พยายามผลักดันภาพไปยัง Nexus Repository Manager ของตนเองให้ทำดังนี้:

1) เข้าสู่ระบบ Nexus Repository Manager ของคุณ (พอร์ต 8443 เชื่อมโยงกับพื้นที่เก็บข้อมูลโฮสต์ Docker เฉพาะ)

sudo docker login xxx.mydomain.com:8443

2) แท็กรูปภาพด้วย IP ของคุณ NEXUS SERVER

sudo docker tag myimage:latest xxx.mydomain.com:8443/myimage:1.0.0

3) ดันภาพ

sudo docker push xxx.mydomain.com:8443/myimage:1.0.0

ฉันมีปัญหาในปลั๊กอิน jenkins docker เสมออ้างถึง docker.io การติดแท็กเช่น xxx.mydomain.com:8443/myimage:1.0.0 แก้ไขปัญหาได้ อย่าลืม procotol และ / v2 / stuff
Himmet Avsar

ทำไมต้องเพิ่มพอร์ต และมีพอร์ตที่จะเพิ่มใกล้ xxx.mydomain.com 8443 เป็น fot https boot ฤดูใบไม้ผลิ จะเป็นอย่างไรถ้าเป็นการประยุกต์ใช้เชิงมุม
P Satish Patro

1
@PSatishPatro เมื่อที่เก็บของคุณแก้ไขเป็นพอร์ต http / https เฉพาะแท็กจะต้องทราบตำแหน่งที่จะพุช (เนื่องจากคุณไม่ได้บอกว่าจะไปที่ไหน - เป็นพารามิเตอร์) ตามที่ระบุไว้ข้างต้นจะต้องเป็น url ที่แน่นอนเหมือนกับที่เก็บข้อมูลของ Nexus ทั้งหมดของคุณ
Phil


3

วิธีการทำงานที่เรียบง่าย:

https://hub.docker.com/ไปที่นี่เพื่อสร้างที่เก็บข้อมูลส่วนบุคคลที่มีชื่อเช่นjohnsmith/private-repositoryนี้คือที่NAME/REPOSITORYคุณจะใช้สำหรับภาพของคุณเมื่อสร้างภาพ

  • ครั้งแรก docker login

  • ประการที่สองฉันใช้ " docker build -t johnsmith/private-repository:01 ." เพื่อสร้างภาพและฉันใช้ " docker images" เพื่อยืนยันภาพที่สร้างเช่นในกล่องสีเหลืองด้านล่างนี้: (ขออภัยฉันไม่สามารถวางรูปแบบตาราง แต่สตริงข้อความเท่านั้น)

johnsmith / private-repository (REPOSITORY) 01 (TAD) c5f4a2861d6e (รหัสภาพ) 2 วันที่ผ่านมา (สร้างแล้ว) 305MB (ขนาด)

  • ประการที่สามฉันใช้ docker push johnsmith/private-repository:01

ทำ!


2

คำตอบของฉันเกี่ยวข้องกับ Azure DevOps ปัญหาที่คล้ายกันที่ฉันมีกับไปป์ไลน์ทั่วไปต่อไปนี้ (เฉพาะเจาะจงมากขึ้น แต่อาจช่วยให้ใครบางคนประหยัดเวลา):

  1. รับแหล่งข้อมูลจาก GitHub
  2. สร้างภาพนักเทียบท่า
  3. กดภาพนักเทียบท่าเพื่อเทียบท่า

ข้อผิดพลาดที่ฉันได้รับเมื่อกด denied: requested access to the resource is deniedส่งฉันมาที่นี่

โปรดระวังตัวแปรที่$(Build.Repository.Name)รวมอยู่ในชื่อภาพของคุณ มันเป็นค่าเริ่มต้นชื่อของที่เก็บจาก Github แต่สำหรับการผลักดันการทำงานของคุณมันควรจะเป็นdockerhub_account_username/your_dockerhub_repository_nameแต่สำหรับการผลักดันของคุณเพื่อการทำงานที่ควรจะเป็น

แทนที่$(Build.Repository.Name)ด้วยdockerhub_account_username/your_dockerhub_repository_nameในฟิลด์ชื่ออิมเมจสำหรับทั้งบิลด์และขั้นตอน

สิ่งนี้จำเป็นสำหรับ dockerhub api เพื่อทราบตำแหน่งที่จะดันรูปภาพ


2

มันทำงานหลังจากที่ฉันเปลี่ยน " ล็อกอินนักเทียบท่าhttps://hub.docker.com " เป็น " นักเทียบท่าเข้าสู่ระบบ docker.io " และระบุชื่อผู้ใช้และรหัสผ่าน

จากนั้นทำตามคำสั่งด้านล่าง:

docker tag local-image:tagname new-repo:tagname

docker push new-repo:tagname

หมายเหตุ: "new-repo" จะมี "Docker ID + Repo name"

ที่นี่ฉันได้สร้าง "อูบุนตู" repo ใน Docker Hub ก่อนรันคำสั่งด้านล่าง

ตัวอย่าง:

docker tag alok/ubuntu:latest aloktiwari2007/ubuntu:latest

docker push aloktiwari2007/ubuntu:latest

จุดสำคัญสำหรับฉันคือ tagname ในคำสั่ง docker tag มันควรจะติดตาม - <dockeruserid> / <ชื่อพื้นที่เก็บข้อมูลระยะไกล>: <tag> ตัวระบุแท็กเดียวกันควรใช้ในคำสั่ง push
Tanmay Patil

1

หากยังคงล้มเหลวdocker loginตรวจสอบให้แน่ใจว่าสร้างที่เก็บข้อมูลที่คุณพยายามจะสร้างขึ้นตั้งแต่แรก


1

ฉันยังมีปัญหานี้ ปรากฎว่าฉันกำลังใช้เทียร์ฟรีและพยายามดันมากกว่า 1 ภาพในที่เก็บส่วนตัว ทำให้รูปภาพ 1 ภาพเป็นสาธารณะและส่วนที่เหลือเป็นงานสาธารณะสำหรับฉัน


1

ในกรณีของฉันฉันถูกผลักดันไปยังองค์กรที่ฉันอยู่ในทีมที่มีสิทธิ์ผู้ดูแลระบบไปยังที่เก็บ

ดังนั้นคำสั่ง push ของฉันคือ: docker push org-name/image-name

ฉันสามารถผลักดันชื่อผู้ใช้ / รูปภาพ - ชื่อได้สำเร็จ แต่ไม่ใช่สำหรับองค์กร ฉันสามตรวจสอบการอนุญาต ไม่มีอะไรทำงาน

วิธีแก้คือลบ repo จาก huber docker และกดใหม่อีกครั้งโดยใช้: docker push org-name/image-name

สำหรับสิ่งที่มีมูลค่าฉันคิดว่า repo ผลักเดิมก่อนที่บัญชีจะถูกแปลงเป็นองค์กร


1

ดังนั้นในกรณีที่เป็นประโยชน์กับทุกคน ...
ฉันมีปัญหาเดียวกันนี้และนี่คือสิ่งที่ปัญหาของฉันและการแก้ไขคือ

  • ฉันมีคอมพิวเตอร์ในเครือข่ายทดสอบของฉันชื่อ 'galaxy'
  • ฉันตั้งค่ารีจิสทรีนักเทียบท่าโดยใช้คำสั่งเรียกใช้ต่อไปนี้:

    sudo docker run -d 
    --restart=always \
    --name registry \
    -v /srv/registry/certs:/certs \
    -v /srv/registry/storage:/var/lib/registry \
    -e REGISTRY_HTTP_ADDR=0.0.0.0:443 \
    -e REGISTRY_HTTP_TLS_CERTIFICATE=/certs/galaxy.cert \
    -e REGISTRY_HTTP_TLS_KEY=/certs/galaxy.key \
    -p 443:443 \
    registry:2
    

    จากนั้นฉันพยายามผลักภาพไปยังกาแล็กซี่จากแล็ปท็อปบนเครือข่ายดังนั้นฉันจึงทำสิ่งนี้:

    docker login galaxy
    

    สิ่งนี้จะทำให้ฉันมีข้อผิดพลาดที่จะพูดว่า:

    Login did not succeed, error: Error response from daemon: 
        Get https://galaxy/v2/: x509: certificate signed by unknown authority
    

    การแก้ไขปัญหานี้ผิดปกติคือทำการเข้าสู่ระบบเช่นนี้:

    docker login galaxy:443
    

    ส่งผลให้การเข้าสู่ระบบที่ประสบความสำเร็จ

    ดังนั้นฉันจึงพยายามผลักดันภาพจากแล็ปท็อปของฉันไปที่ 'กาแล็กซี่'
    ฉันได้สร้างแท็กสำหรับภาพที่มีลักษณะดังนี้:

    galaxy/myImage:0.0.1
    

    ดังนั้นฉันจึงพยายามผลักดันสิ่งนี้:

    docker push galaxy/myImage:0.0.1
    

    ซึ่งฉันได้รับคำตอบ:

    The push refers to repository [docker.io/galaxy/myImage]
    7ab460574f86: Preparing 
    1aecaf56754d: Preparing 
    1df1b5f06ca4: Preparing 
    denied: requested access to the resource is denied
    

    ผิดปกติพอฉันค้นพบการแก้ไขนี้เป็นแท็กภาพแรกดังนี้

    docker tag myImage:0.0.1 galaxy:443/myImage:0.0.1
    

    ... แล้วทำแบบนี้:

    docker push galaxy:443/myImage:0.0.1
    

    ดังนั้นด้วยเหตุผลบางอย่างฉันต้องรวมพอร์ตในแท็กเป็นส่วนที่จำเป็นของชื่อที่เก็บ



    หวังว่านี่จะช่วยผู้อื่น


  • 1

    คำตอบก่อนหน้าทั้งหมดถูกต้องฉันต้องการเพิ่มข้อมูลที่ฉันเห็นไม่ได้กล่าวถึง

    หากโครงการเป็นโครงการส่วนตัวที่จะผลักดันภาพอย่างถูกต้องจะต้องมีการกำหนดโทเค็นการเข้าถึงส่วนบุคคลหรือปรับใช้โทเค็นด้วยการเปิดใช้งานคีย์ read_registry

    แหล่งที่มา: https://gitlab.com/help/user/project/container_registry#using-with-private-projects

    หวังว่าจะเป็นประโยชน์ (เช่นถ้ามีการโพสต์คำถามจนถึงเวลา)


    1

    คำตอบนี้มากสำหรับตัวฉันในอนาคตเหมือนกับคนอื่น ๆ ฉันพบปัญหาที่แน่นอนนี้เมื่อฉันเข้าสู่ระบบอย่างถูกต้อง แต่ฉันพยายามที่จะผลักดันไปยัง repo ส่วนตัวเมื่อจำนวน repos ส่วนตัวของฉันมากกว่าหรือเท่ากับขีด จำกัด ที่แผนของฉันอนุญาต

    ฉันไม่แน่ใจว่าฉันสามารถสร้าง repos ส่วนตัวมากเกินไปได้อย่างไร แต่ถ้าแผนของฉันมี repos ส่วนตัว 5 อันและฉันมี 6 อย่างนี้เป็นข้อผิดพลาดที่ฉันจะได้รับ:

    denied: requested access to the resource is denied

    ในกรณีของฉันเป็นไปได้ว่าฉันลงเอยด้วยที่เก็บส่วนตัวมากเกินไปเพราะฉันตั้งค่าการเปิดเผยค่าเริ่มต้นเป็นส่วนตัว:

    ทัศนวิสัยเริ่มต้น

    นี่คือที่คุณกำหนดจำนวน repos ส่วนตัวที่คุณสามารถมี:

    แผนการเรียกเก็บเงิน

    เมื่อฉันทำให้สาธารณะ repo ที่มีปัญหากลายเป็นปัญหา:

    ทำให้ที่เก็บส่วนตัว 5 จาก 5


    1

    ฉันหวังว่าสิ่งนี้จะช่วยคนได้

    ฉันพยายามพิมพ์อย่างต่อเนื่อง

    docker push user/repo/tag
    

    แทน

    docker push user/repo:tag
    

    ตั้งแต่ฉันทำแท็กของฉันเช่นนี้:

    docker tag image user/repo/tag
    

    ... นรกที่แตกสลายหมด

    ฉันหวังเป็นอย่างยิ่งว่าคุณจะไม่ทำผิดพลาดซ้ำอีก ฉันเสียเวลาไปกับ 30 นาที ...


    1

    ฉันช้าที่จะเพิ่มอีกคำตอบ แต่คำตอบที่ได้รับการยอมรับและคำตอบที่เหลือกล่าวถึงdocker loginจะหายไปกรณีที่ขอบเพื่อแก้ปัญหาที่คนอื่นกำลังระบุในความคิดเห็น

    docker login <private-repo-host>:<port>

    การเน้นที่ความportต้องการที่จะป้อนนั้นน่าจะเป็นทางออกสำหรับผู้ที่ยังค้นหาอยู่ docker loginหรือdocker login <private-repo-host>อาจเชื่อมต่อโดยไม่มีปัญหา แต่เมื่อถึงเวลาที่ต้องส่งรูปภาพคุณจะได้รับข้อผิดพลาดเดียวกันกับ OP

    นั่นคือคุณสามารถเชื่อมต่อโดยไม่มีการกำหนดโฮสต์หรือพอร์ตและยังคงได้รับ:

    ...

    เข้าสู่ระบบสำเร็จ

    ในกรณีของฉันฉันใช้ตัวเองเป็นเจ้าภาพ GitLab 4567สร้างขึ้นในนักเทียบท่ารีจิสทรีซึ่งถูกติดตั้งเข้ากับพอร์ตการใช้งานของ มันอาจเป็นเรื่องยากที่จะตรวจสอบพอร์ตใดที่ต้องลงทะเบียนรีจิสทรี หากไม่ระบุว่าพอร์ตdocker login <our.gitlab.host>นั้นจะทำการล็อกอินสำเร็จ แต่ให้ปัญหาเดียวกันกับ OP ที่สอบถามเกี่ยวกับ:

    ...

    การพุชหมายถึงที่เก็บ [... ]

    ปฏิเสธแล้ว: การเข้าถึงถูกห้าม

    หากคุณกำลังใช้ docker.io/dockerhub คุณอาจจะไม่มีปัญหานี้ แต่ถ้าคุณมีโฮสต์ของตนเอง / โซลูชันรีจิสตรีส่วนตัวความน่าจะเป็นที่เพิ่มขึ้นคุณจะต้องลงชื่อเข้าใช้ทั้งโฮสต์และพอร์ตสำหรับรีจิสตรีทอย่างชัดเจน .


    ขอบคุณเป็นประโยชน์มากที่สุด!
    Alfabravo

    1

    ไม่อนุญาตให้เข้าใจผิดเกี่ยวกับชื่อแท็ก
    แนวทางของฉันในการแก้ปัญหานี้:

    Command 1(Create Tag): docker tag my-nginx:latest rsachde/nginx-repository/trys:1.0 (Didn't push)
    Command 2(Push): docker push rsachde/nginx-repository/try:1.0 
    

    เอาท์พุท:

    ปฏิเสธแล้ว: การเข้าถึงทรัพยากรที่ร้องขอถูกปฏิเสธ


    Command 1.1(Create Tag): docker tag my-nginx:latest rsachde/nginx-repository/:trys 
    Command 2.2(Push): docker push rsachde/nginx-repository:trys 
    

    เอาท์พุท:

    trys: ข้อมูลย่อย: sha256: 405b6f0ae25772ef71b8f59fd6a56ff9b426f50bd24bac2b5db41f65efd3387c ขนาด: 1365

    การทำให้เข้าใจผิดคือแท็กตรวจสอบให้แน่ใจว่าคุณเข้าใจ


    1

    วิธีที่ง่ายที่สุดคือการใช้เดสก์ท็อปนักเทียบท่า (สำหรับ Windows 10 ขึ้นไปและ mac)

    การลงทะเบียนครั้งแรกกับศูนย์กลางนักเทียบท่าโดยระบุ dockerID

    จากนั้นคลิกที่ไอคอนเดสก์ท็อปนักเทียบท่าในเครื่องของคุณและ -> การตั้งค่า -> จากนั้นเข้าสู่ระบบโดยใช้ docker hub / id และรหัสผ่าน

    ป้อนคำอธิบายรูปภาพที่นี่


    0

    เปลี่ยนชื่อภาพของคุณเป็นชื่อผู้ใช้ / แท็กชื่อนักเทียบท่าแท็ก your-current-image / current-image นักเทียบท่ารูปภาพชื่อผู้ใช้ / ชื่อ - บาง: your-tag (ตัวอย่าง: ล่าสุด)


    0

    ลองลงชื่อออกจากแอปพลิเคชัน "นักเทียบท่าสำหรับ Windows" และลงชื่อออกจากเว็บไซต์https://hub.docker.com/และหลังจากดำเนินการ "เข้าสู่ระบบนักเทียบท่า" และ "นักเทียบท่าดัน" มันช่วยฉันได้

    โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
    Licensed under cc by-sa 3.0 with attribution required.