Docker Local Registry

Docker Local Registry Örneği

Deniz TÜRKMEN
4 min readSep 12, 2022

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.

Şekil 1 : Gitlab Proje Oluşturma

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.

Şekil 2 : Container Registry

Ş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.

Şekil_3 : Dockerfile Dosya İçeriği

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
Şekil_4 : Docker Container

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.

Şekil 5 : Gitlab Login

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.

Şekil 6 : Container Registry

Ş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.

Şekil_7 : Container Registry Image Görüntüsü

Şimdi de bu image’mızdan bir container oluşturalım ve test edelim.

Tarayıcımızdan localhost:5004 gittiğimizde ;

Şekil 8 : Gitlab Local Registry Örnek

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.

--

--