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
- 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
- Autentifikatsiya jildini yarating:
mkdir auth
- Asosiy autentifikatsiya faylini yarating va username va parol qo'ying. Rasmiy registr imagedan foydalanish. Quyida biz
devops
nomli user ochamiz va parolinidevops2h3dew
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.
{
"insecure-registries" : ["localhost:5000"]
}
Docker servisini qaytadan ishga tushiramiz (restart).
sudo systemctl restart docker
Shaxsiy registringiz bilan ishlash
- 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