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:2Ushbu 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
devopsnomli user ochamiz va parolinidevops2h3dewqo'yamiz. Dockerga user qo'shish bizga ci/cd larda kerak bo'ladi.
docker run --entrypoint htpasswd registry:2 -Bbn devops devops2h3dew > auth/htpasswdYoki Apache httpd imagedan foydalanib:
docker run \
--entrypoint htpasswd \
httpd:2 -Bbn devops devops2h3dew > auth/htpasswdDocker Daemoniga xavfsiz registrga ulanishga ruxsat berish
Docker konfiguratsiyasiga o'ting va Daemon konfiguratsiyasini tahrirlang:
cd /etc/docker
nano daemon.jsondaemon.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 dockerShaxsiy registringiz bilan ishlash
- Registryga kirish(login qilish)
docker login localhost:5000Ushbu 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-imagedocker push
docker push localhost:5000/birinchi-imagedocker pull
docker pull localhost:5000/birinchi-imageDocker Registryni to'xtatish va barcha malumotlarni o'chirish
docker container stop registry && docker container rm -v registry