Skip to content
Dokumentatsiya
Docker Registry

Docker Registry

Ushbu sahifada open source Docker Registry (opens in a new tab) yordamida o'z registryingizni joylashtirish haqida ma'lumot mavjud. Teamlar, organizatsiyalar, web hooklar, avtomatlashtirilgan buildlar va boshqalar kabi qo'shimcha funksiyalarga ega bo'lgan host qilingan registryni taklif qiluvchi Docker Hub (opens in a new tab) haqida ma'lumot olish uchun Docker Hub-ga qarang.

Bu nima

Docker Registry - bu Docker imagelarini joylashtirish(hosting) va tarqatish(distributing) xizmati. Ishlab chiquvchilar undan o'z imagelarini push qilish uchun foydalanadilar va joylashtirishlar Docker konteynerlarini distributening izchil va tezkor usulini ta'minlab, imagelarni pull qilib olish uchun foydalanadilar. Docker Hub - bu hamma foydalanishi mumkin bo'lgan ommaviy registrdir, lekin ba'zida shaxsiy registrni joylashtirishga ehtiyoj bor.

Registry stateless, yuqori darajada kengaytiriladigan server side applicationi bo'lib, u Docker imagelarini saqlaydi va sizga distribute qilish imkonini beradi. Registry ruxsat etilgan Apache litsenziyasi (opens in a new tab) ostida open-source hisoblanadi. Manba kodini GitHub (opens in a new tab)-da topishingiz mumkin.

Nima uchun xususiy Docker Registrydan foydalanish kerak?

  • Maxfiylik: Har bir Docker image ommaviy(public) bo'lishi kerak emas. Shaxsiy registry yordamida siz o'zingizning shaxsiy imagelaringizni maxfiy(private) saqlashingiz mumkin.
  • Latency: O'z registryngizni joylashtirish, ayniqsa, u joylashtirish muhitiga yaqin bo'lsa, imageni tezroq pull qilib olish va push qilish vaqtlariga olib kelishi mumkin.
  • Nazorat: O'zingizning registryngiz yordamida siz imagelar, ularga kim kirishi va ular qanday tarqatilishi ustidan to'liq nazoratga egasiz.

Asosiy Docker Registryni o'rnatish

  1. Docker Registryni ishga tushirish
docker run -d -p 5000:5000 --name registry registry:2

Ushbu buyruq Docker official registry imageni (2-versiya) tortib(pull) oladi va uni ishga tushiradi. Registry 5000 portni tinglaydi.

Docker registringizni asosiy autentifikatsiya bilan himoyalash

  1. Autentifikatsiya jildini yarating:
mkdir auth
  1. Asosiy autentifikatsiya faylini yarating va username va parol qo'ying. Rasmiy registr imagedan foydalanish. Quyida biz devops nomli user ochamiz va parolini devops2h3dew qo'yamiz. Dockerga user qo'shish bizga ci/cd larda kerak bo'ladi.
docker run --entrypoint htpasswd registry:2 -Bbn devops devops2h3dew > auth/htpasswd

Yoki Apache httpd imagedan foydalanib:

docker run \
  --entrypoint htpasswd \
  httpd:2 -Bbn devops devops2h3dew > auth/htpasswd

Docker Daemoniga xavfsiz registrga ulanishga ruxsat berish

Docker konfiguratsiyasiga o'ting va Daemon konfiguratsiyasini tahrirlang:

cd /etc/docker
nano daemon.json

daemon.json fayliga quyidagi konfigratsiya faylini kiriting localhost o'rniga serveringiz IP addresini yozasiz.

/etc/docker/daemon.json
{
  "insecure-registries" : ["localhost:5000"]
}

Docker servisini qaytadan ishga tushiramiz (restart).

sudo systemctl restart docker

Shaxsiy registringiz bilan ishlash

  1. Registryga kirish(login qilish)
docker login localhost:5000

Ushbu buyruqni ishga tushurganizda sizdan Username so'raydi siz yuqorida ochgan useringizni yozasiz, keyin esa sizdan Password so'raydi shu userni parolini kiritasiz.

docker tag

docker image tag ubuntu localhost:5000/birinchi-image

docker push

docker push localhost:5000/birinchi-image

docker pull

docker pull localhost:5000/birinchi-image

Docker Registryni to'xtatish va barcha malumotlarni o'chirish

docker container stop registry && docker container rm -v registry