Таны зөөврийн компьютер корпорацийн VPN-д байгаа, curl дотоод registry-д хүрч байгаа ч docker pull EOF-тэйгээр бүтэлгүйтсээр байна. Энэ хослол зөрчил биш. Таны бичсэн команд shell-д тань ажилладаг ч дамжуулалт нь Docker CLI-ийн сонгосон daemon дотор ажилладаг бөгөөд тэр daemon нь огт өөр хост дээр байж болно. Яг түүний сүлжээний зам ажиллах ёстой бөгөөд яг түүний proxy тохиргоо үйлчилнэ.

Замаас биш, хөдөлгүүрийг тодорхойлж эхэл

docker context show ба docker version-ыг ажиллуул. Хувилбарын гаралт нь клиентийн хэсэг болон серверийн хэсгийг хэвлэх бөгөөд серверийн блок нь хэн хариулсныг хэлнэ: локал native хөдөлгүүр, Docker Desktop-ын виртуал машин эсвэл алсын машин дээрх daemon. Итгэлтэй байхыг хүсвэл docker context inspect сонгосон контекстийн төгсгөлийн цэгийг харуулах бөгөөд эдгээр командуудын аль нь ч юу ч өөрчлөхгүй.

DOCKER_HOST мэтийн орчны хувьсагч CLI-г таны таамаглаж байгаагаас өөр хөдөлгүүр рүү чимээгүй чиглүүлж болох бөгөөд энэ нь зөөврийн компьютер VPN-д байгаа мэт харагдах боловч таталт өөр тийш явж байгаагийн ердийн тайлбар юм.

Daemon өөрийн сүлжээний ижилсэлтэй

Алсын хөдөлгүүрт хувийн registry рүү өөрийн зөвшөөрөгдсөн зам хэрэгтэй. Зөөврийн компьютерийнхээ VPN клиентийг холбох нь тэр компьютерт зам өгдөг; лаборатори эсвэл үүлэн дэд сүлжээнд сууж буй daemon-д мөнөөх хувийн хаягийг өгдөггүй. Хэрэв хөдөлгүүр нь Docker Desktop бол таталт нь түүний виртуал машин дотор явагдах бөгөөд тэр машин нь таны shell-ийн орчноос тусдаа өөрийн сүлжээ болон proxy тохиргоотой.

Тиймээс хост дээр амжилттай curl нь хотын тухай нотолгоо бөгөөд үүнээс өөр зүйл биш.

Registry-тэй хийсэн аль солилцоо дууссаныг олж мэд

Image татах нь дараалал юм: нэвтрүүлэлт, манифест авах, дараа нь ихэвчлэн объектын сан эсвэл CDN-ийн төгсгөлийн цэг рүү чиглүүлэгддэг blob дамжуулалтууд. Амжилттай docker login зөвхөн эхний алхмыг нотолдог бөгөөд чиглүүлэгдсэн blob хост daemon-ын сүлжээнээс хүрэхгүй байхад token бүрэн хүчинтэй байж болно. Ямар нэгэн зүйл өөрчлөхөөс өмнө яг цаг, image-ийн лавлагаа, daemon эсвэл клиентийн лог дахь эхний ашигтай үйл явдлыг тэмдэглэ.

EOF дангаараа ямар ч шалтгааныг нэрлэхгүй. Энэ нь тасарсан холболт, урсгалыг хаясан proxy, хугацаа хэтрэх эсвэл MTU-ийн асуудал байж болох бөгөөд цагийн тэмдэгтэй үйл явдалгүйгээр тэдгээрийн хооронд таамаглах нь хүмүүс эрүүл хөдөлгүүрийг дахин бүтээх зам юм. Клиентийн гаралт дахь байтын шилжилтийг өгөгдөл гэж үз, учир нь алдаа бүрт ижил хэмжээгээр зогсдог дамжуулалт хэзээ ч эхлэдэггүй дамжуулалтаас шал өөр амьтан юм. Хоёр үр дүнг хоёуланг нь бүртгэж, оролдлогуудын хооронд харьцуул.

Дамжуулалтыг гүйцэтгэдэг бүрэлдэхүүнийг тохируул

Native Linux хөдөлгүүрийн хувьд proxy нь shell-д биш, үйлчилгээний орчинд хамаарна. /etc/systemd/system/docker.service.d/-ийн доорх HTTP_PROXY, HTTPS_PROXY ба NO_PROXY бичлэгтэй drop-in файл, дараа нь systemctl daemon-reload ба дахин эхлүүлэх нь баримтжуулсан зохион байгуулалт юм. Docker Desktop ижил утгуудыг өөрийн тохиргоогоор санал болгодог бөгөөд shell профайлыг засах нь тэдгээрийн аль нэгэнд ч хүрэхгүй.

Хэрэв registry-д VPN-ээр шууд хүрэх шаардлагатай бол daemon-д resolver, зам, мөн зориудын proxy хасалт хэрэгтэй бөгөөд зөвхөн хасалт хангалтгүй. NO_PROXY тааруулга нь бүрэлдэхүүн бүрийн мөрийн харьцуулалт бөгөөд доор нь замгүй чөлөөлөлт нь proxy-ийн асуудал мэт харагдах эвдрэл үүсгэдэг.

Корпорацийн TLS шалгалт зөвшөөрөгдсөн замд байгаа үед түүний баталгаажсан үндсийг хөдөлгүүр эсвэл Desktop-ын ажлын урсгалаар суулга. Registry-г insecure-registries-д нэмэх нь баталгаажуулалтыг унтраадаг өөр өөрчлөлт бөгөөд энэ нь итгэлцлийн сангийн тохиргоо биш.

Нэг хяналттай таталтыг давтаж, юу өөрчлөгдсөнийг шалга

Нэг хил хязгаарыг өөрчилж, түүнийг эзэмшдэг бүрэлдэхүүнийг дахин эхлүүлж, ижил контекстээс ижил таталтыг давта. Алдаа байхгүй байхыг бус, гарсан image-ийн лавлагаа болон digest-ийг шалга, учир нь кэшлэгдсэн давхарга нь хоёр дахь оролдлогыг эхнийхээс хамаагүй бага замаар явуулж болно. Бодитоор болсон дамжуулалтуудыг тасалбарт хадгал, учир нь тэдгээр нь давталт үнэхээр юу шалгасныг харуулах цорын ганц бүртгэл юм.

Build-ийн алхмууд болон ажиллаж буй контейнерууд өөрийн сүлжээний контексттэй, тиймээс таталт өөрөө ажилласны дараа тэдгээрийг тусдаа асуулт гэж үз.

Холбоотой нийтлэлүүд