Docker Image Oluşturma İşlemi

Merhabalar ,

Bu yazımda docker image dosyasını kendimize göre oluşturmayı ve bu düzenlenmiş image’ı localde kayıt altına almayı göstereceğim.Ubuntunun official sürümü üzerinden gideceğim. Çok detaya girmeden ubuntu içerisinde sadece bir dosya oluşturacağız daha sonra bu dosyanın bulunduğu şekilde image’ımızı kendi vereceğimiz isimlendirme lokal bilgisayarımıza ile kaydedeceğiz.Daha sonra localdeki official ubuntu image’ımızı silip kendi yarattığımız image ı çalıştıracağız ve dosyanın bu image da olduğunu göreceğiz.Burada official ubuntu dan kastım aslında GUI arayüzü olmayan sade bir OS(İşletim sistemi) …

 
docker pull ubuntu 

bu kod ile ubuntu official image’ını Docker Registry den local bilgisayarımıza indiriyoruz.İşlem bittikten sonra ;

 
docker images

kodu ile ubuntu official image ‘ımızın local de olduğunu görebilirsiniz.

şimdi sıra geldi çalıştırma komutuna ;

 
docker run -i -d --name myubuntu ubuntu

bu kodda interaktif ve deattach mod da yani arka planda sürekli çalışacak “myubuntu” adını atadığımız official image ‘ımız çalışmaya başlayacak.

 
docker container ls

komutu ile arka planda hali hazırda çalışmakta olduğunu görebilirsiniz.Şimdi bu image ın terminal ekranında çalışalım bunun için aşağıdaki kodu uygulayalım ;

 
docker exec -it myubuntu bash

şu anda ubuntu image’ımızın içerisindeyiz.linuxtaki ls komutu ile ana dizinimizde ki dosyaları görüntüleyelim …

 
//Ana dizin listeleme işlemi
ls

şimdi ise burada bir klasör oluşturup bunun içerisine bir txt dosyası oluşturalım ve içerisine herhangi birşey yazalım.İsimlendirme serbest …

 
mkdir dockertest
ls
//bu komuttan sonra klasörümüzün oluştuğunu göreceksiniz.cd komutu ile klasörün içerisine girelim
cd dockertest/
//şimdi docker.txt isimli bir dosya oluşturalım.
touch docker.txt

Şu ana kadar dosylarımızı oluşturduk ancak ubuntu paketimizde dosyayı düzenlemek için nano paketi yüklü değil.Şimdi bu paketi sırası yüklemeye başlayalım.

 
apt-get update
apt-get install nano

Yukarıdaki kodlar ile image ‘ımızı nano paketini de yükledik.Şu anda hala olmak istediğimiz “dockertest” klasöründeyiz.Şimdi dosyamızı düzenleyebiliriz.

 
nano dockertest.txt

Şimdi docker.txt dosyamızın içerisindeyiz.İçerisine bir Not yazalım ben “Ilk Docker Image’imiz” yazıyorum.CRTL+O ve Enter tuşlarına basarak dosyamızı kaydettik.CTRL+X ile düzenleyiciden çıkıyoruz.Şu anda hala image’ımızı içerisindeyiz.Şimdi exit komutu ile çalıştığımız ubuntu image’indan çıkalım.

 
exit

Şimdi ise arka planda çalışmakta olan değişikliklerini yaptığımız image’ımızı container’ımızı durdurmadan önce Image oluşturma işlemini yapalım ve bu image’a image’ın kimin tarafından oluşturulduğu ve eposta bilgisini yazalım.

 
docker commit -a "Serkan Kaya <admin@serkankaya.net>" myubuntu serkankaya/myubuntu:1.0

Yukarıdaki kod ile “1.0” versiyonunda “serkankaya/myubuntu” adında image’ın kimin tarafından oluşturulduğunu verdiğimiz image’ımızı yaratmış olduk.Şimdi image’ımıza bakalım oluşmuş mu ?

 
docker image ls

Kod sonrası aşağıdakine benzer bir ekran görmelisiniz.

 
REPOSITORY                   TAG                 IMAGE ID            CREATED             SIZE
serkankaya/myubuntu          1.0                 713e011c5a92        4 seconds ago       154MB
ubuntu                       latest              f975c5035748        8 days ago          112MB

şimdi official ubuntu image’ımızı silelim ve oluşturduğumuz image’da daha önce oluşturduğumuz dosyalarımız ve nano paketimiz duruyormu bunu kontrol edelim.

 
//ilk önce myubuntu image'ımızı stop edelim
docker container stop myubuntu
//şimdi ubuntu official image ımızı silelim
docker image rmi ubuntu
//şimdi kendi oluşturduğumuz image'ı arka planda direk terminale düşecek şekilde çalıştıralım.
docker run -it serkankaya/myubuntu:1.0
//ls komutu ile ana dizindeki klasörleri görüntüleyelim.
ls
//dockertest klasörümüzün burada olduğunu göreceksiniz.Klasöre girip nano ile docker.txt dosyamızı açalım.
cd dockertest/
nano dockertest.txt
//düzenlemek istediğimiz dosya nano ile açıldı ve ilk docker image imiz yazısını gördük

Böylece docker image’ımızı oluşturmuş ve oluşturduğumuz image’ı doğrulamış olduk , artık official ubuntu image’ını değil de kendi oluşturup düzenlediğimiz “serkankaya/myubuntu” image’ını kullanabiliriz …Burada basit olması açısından sadece bir dosya oluşturduk düzenledik ve image aldık tabi burada amaç daha komplex bir yazılım “web server gibi” koşturmak olabilirdi …

Image oluşturma anlatımım bu kadar 🙂

Umarım faydalı olmuştur ?

Serkan Kaya
Full Stack Java Developer

Bir cevap yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir