Docker Local Registry
Docker Local Registry Örneği
Merhabalar,
Bu yazımızda docker local registry ne olduğu inceliycez. Uygulamamıza özel image oluşturma ve kullanmayı örneklendircez. Uygulamamıza ait kaynak kodlarını sakladığımız gitlab üzerinde docker local registry inceliycez.
Docker Local Registry Nedir
Uygulamamıza ait imagelar’ımızı depoladığımız yerdir. Container’ımızın silinse dahi image’larımız silinmez ve istediğimiz zaman tekrar bu image’ı indirip kullanabiliriz. “hub.docker.com” sitesine yedeklemek yerine kendi local sunucumuza yedekleme yaparız. Bunun için gitlab’ın container registry özelliğini kullanacağız. Örneğimize başlayalım.
ilk olarak gitlab sayfamıza giriş yapalım. Giriş yaptıktan sonra ;
Projects -> your project -> new project -> create blank project tıklayalım. Açılan sayfada project ismi belirleyelim ve create project diyelim. Bu örneğimiz için ;
Registry_image_test diye isimlendiriyorum. Şekil 1 de gözüktüğü üzere create project deyip projemizi oluşturuyoruz.
oluşan projemiz içerisinde ;
Packages & Registries sekmesinden Container Registry seçiyoruz. Şuan için bizim proje ait bir image’mız yok. Şekil 2 de gözüktüğü üzere.
Şimdi basit bir nginx web sunucusu Dockerfile kullanarak index.html sayfasını değiştirip container registry gönderelim ve bu imagedan bir container oluşturalım.
Bilgisayarımın masaüstüne local_registry adında bir klasör yaratıyorum.
mkdir -p local_registry
Not : Burada dikkatinizi çekmek istediğim bir şey var gitlab ile ilgili. Şekil 2 de gözüktüğü gibi url kontrol edersek.
”https://gitlab.com/deniz.turkmen/registry_image_test/container_registry”
“gitlab.com/gitlab_kullanıcı_adi/proje_ismi/container_registry” burası sizin gitlab kullanıcı adı ve proje isminize göre değişebilir.
- Dockerfile dosyamızın yazalım;
FROM nginxCOPY index.html /usr/share/nginx/html
Şimdi Dockerfile dan bir image oluşturalım.
docker image build -t local_registry .
komutunu kullanalım. Burada .”Nokta” ile Dockerfile aynı dizinde olduğunu söylüyoruz.
Image’mız oluştu. Şimdi de imagemızı test etmek için bir container oluşturalım.
docker container run -dp 5003:80 image_ismi
Container’ımız oluştu. Tarayıcımızdan “localhost:5003” gittiğimizde,
Şimdi gitlab hesabımıza login olalım. Username ve şifreyi girdiğimiz login olduğunuz bilgisini görmekteyiz.
Login olduktan sonra gitlab dan projemize ait olan container registry sekmesine gidelim. Şekil 6 da gözüktüğü login komutunu terminalden çalıştıralım.
Şimdide kendi local registry alanımıza image yollamadan önce tekrar bu image tagle’memiz lazım.
"docker image tag image_ismi"registry.gitlab.com/gitlab_kullanıcı_adı/proje_ismi/image_ismi
Şu an image oluştu. Image2mızı listelemek için “docker images” komutunu kullanırız.
Konu başlığımız olan yere geldik artık bunu kendi container registry göndermemiz.
docker push registry.gitlab.com/gitlab_kullanıcı_adı/proje_ismi/image_ismi
Böylelikle imagemızı container registry göndermiş olduk. Container registry sekmesi gittiğimizde imagemızın repomuza gittiğini görmekteyiz.
Şimdi de bu image’mızdan bir container oluşturalım ve test edelim.
Tarayıcımızdan localhost:5004 gittiğimizde ;
Not : Artık containerımız silinse bile image’mız kendi container registry duracaktır. İstediğimiz zaman docker pull container_registry_image_ismi ile çekebilir ve kullanabiliriz. Denemek için ben kendi local bilgisarımda
docker image rm -f image_id
ile önce image sildim. Localimdeki imageları listelediğimde gözükmemektedir.
Görüldüğü gibi image’mız yok.
docker pull registry.gitlab.com/deniz.turkmen/registry_image_test/local_registry
Kendi bilgisayarımıza var olan image indirmiş olduk. Container oluşturup çalıştırabiliriz.
Bu yazımızın da sonuna gelmiş bulunmaktayız. Araştırmalarım ve sektörde karşılaştığım senaryolar üzerine yazılarımı yazmaya devam edeceğim. Umarım faydalı bir yazı olmuştur. Yazımı okuduğunuz için teşekkürler.