Ana sayfa » Docker İmaj ve Container Komutlarına Giriş (4/4) | system, df, prune, events, -m, –cpu-quota

Docker İmaj ve Container Komutlarına Giriş (4/4) | system, df, prune, events, -m, –cpu-quota

by teknodice
docker imaj ve container komutları 4

Docker komutlarını incelemeye devam ediyoruz, docker system komutları 4 tanedir, şimdi bunları sırasıyla inceleyelim; öncelikle df komutuna yakından bakalım, bu komut bize disk kullanım detaylarını verecek:

docker system df

Komutu girdiğimizde yukarıdakine benzer bir çıktı alacaksınız, bu komutta disk kullanm istatistiklerini görebilirsiniz, tabloyu incelediğimizde imajlarımızı, containerlarımızı, bunların kaçının aktif çalışır olduğu, bellekte kapladıkları boyut gii bilgilere erişebilirsiniz, örneğin ACTIVE sütununda 0 ibaresini görmek, çalışan (run durumda) bri imaj veya container olmadığı anlamına geliyor.
Şimdi bir container ayağa kaldıralım ve yukarıdaki tablo nasıl değişiyor bakalım:

docker run -d -p 5000:5000 ozanzarci/hello-world-java:0.1

Java uygulamamızı ayağa kalkmasını bekleyelim, işlem tamamlandıktan sonra, şimdi tekrar docker system df komutunu girip tablomuz nasıl değişti bakalım:

Gördüğünüz gibi imaj ve container satılarlarında ACTIVE sütunu olarak artık 1 ibaresi var: 1 imaj ve o imajı run eden bir container ayakta anlamına geliyor.

Komutları incelemeye devam edelim; şuan mevcutta bir containerımız ayakta ve çalışıyor, sırada events konutumuz var, bu komut arka tarafta hangi hareketlerin olduğunu detaylı şekilde görmemizi sağlıyor, bir örnekle deneyelim: Öncelikle containerlarımızı listeleyelim docker container ls komutunu kullanın, şimdi yeni bir terminal daha açın ve o termine docker system events komutunu girin, daha sonra eski terminale geri dönün; gördüğünüz containeri stop edin (docker container stop [container id]) , daha sonra tekrar events komutu girdiğiniz containera geri dönüp bakın; satır satır olarak contaierın nasıl kapandığını, hangi adımlardan geçtiğini gçreceksiniz.

Aktif olan containerı stop ettim, events komutunu girdiğim terminale yansıyan çıktı yukarıdaki gibi, bir önceki terminale gidip tekrar bir container run ederseniz buradaki satırlara aynı şekilde yansıyacaktır.

Komutları incelemeye devam ediyoruz, şimdi bir önceki yazımızda hatırlayacağınız prune -a komutunu inceleyeceğiz, lakin bu sistem düzeyinde olacağı için daha köklü bir silme işlemi yapacak, bu ne anlama geliyor?
Örneğin standart prune komutu daha önce başlatılmış ve durdurulmuş tüm containerları silerken, system düzeyindeki prune -a komutu buna imajları da dahil eder, öncelikle şimdi docker container ls -a komutunu girerek yeni/eski tüm containerlarımızı görelim, ardından prune komutunu kullanacağız:

docker system prune -a

Komutu girdiğinizde size tüm durdurulmuş containerları, tüm cache ayrılmış alanı, ilişiği olmayan imajlarını sileceğini söyleyen bir uyarı çıkarır ve emin misiniz diye sorar. “y” yazıp enter tuşuna bastığınızda silme işlemi başlayacak, bu işlem birkaç saniye alacaktır ve sonunda terminal hazır hale geçtiğinde işlem tamamlanmış olacak.

Şimdi neler olmuş bakalım: bu komutla beraber run durumda olmayan tüm imaj ve containerlar, cache bellekleri silmiş olduk, öncelikle imajlarımıza bakalım: docker images komutunu girdiğinizde hiç imaj göremeyeceksiniz. şimdi docker container ls -a yapıp eski/yeni tüm containerlarımızı inceleyelim; burada da hiçbir container bilgisi olmadığını göreceksiniz, her şeyi temizledik.

docker system prune -a kullanımayan tüm şeyleri kaldırmak için kullanıyoruz.

Bir sonraki komutumuzu tanıyalım; stats
Bu komut, adından da anlaşılacağı üzere bize istatistiki veriler sunar, şuan çalışır bir durumda olan container olmadığı için hemen bir tanesini ayağa kaldıralım, bu kez yine python uygulamasını ayağa kaldırmak istediğimizi varsayalım:

docker run -d -p 5000:5000 ozanzarci/hello-world-python:0.1

Şimdi python çalıştıran bir containerımız var.
docker container ls komutuyla bunu listede de görelim.
Şimdi stats komutumuzu kullanalım, bunun için Container id değerine ihtiyacımız olacak, şuan aktif olan container id’sini kopyalayalım, yeni bir terminal açalım ve aşağıdaki komutta ilgili yere yazıp çalıştıralım.

docker stats [container id buraya gelecek]

Komutu diğer terminale yazdığınızda, aktif olan container ile ilgili temel istatistiki verileri canlı olarak görebilirsiniz:

Şimdi aktif olan containerı stop edelim (docker container stop [container id]) ve istatistik veren terminale bakalım:

Cpu ve memory değerlerinin sıfırlandığını göreceksiniz, container stop oldu.

Komutşarı incelemeye devam ediyoruz, sıradaki komutumuz bir containerın kullanacağı bellek ve cpu miktarını sınırlamak üzerine, yani containerı ayağa kaldırırken ona “sen maximum bu kadar cpu, şu kadar memory kullanabilirsin” diyeceğiz.
Önce memory değerini belirleyelim, bunun için -m komutunu kullanacağız, bu komutu kullanırken containerin ne kadar bellek kullanabileceğini belirteceğiz.
Örneğin bu sefer 512mb bellek sınırı olan bir java uygulaması ayağa kaldıralım, şimdi komut satırımızı girelim:

docker run -d -p 5000:5000 -m 512m ozanzarci/hello-world-java:0.1

Komutu girdiğimizde container ayağa kalkacak ve ona ayrılan bellek miktarı 512mb olacak, container ayağa kalktıktan sonra docker container ls komutunu yazıp container idsini görelim.
Sonrasında yeni bir terminal açalım ve istatistikleri gözlemleyelim: docker stats [container id]

Bu işlemleri yaptığınızda java çalıştıran containerınızın nelek miktarının 512mb olduğunu göreceksiniz.

Bu komutu biraz gelişirelim: diyelim ki hem 512mb bellek kullanabilsin, hem de cpu gücümüzün maks 50%’sini kullanabilsin, bunu nasıl yapacağız? –cpu-quota komutuyla.

Öncelikle mevcut containeri stop edin, çünkü sıfırdan bir container kaldıracağız. Stop ettiyseniz şimdi yeni bir container ayağa kaldıralım.
Yine java uygulamasırun etmek istediğimizi varsayalım, bu container hem 512mb yer kullanabilir, hem de cpu gücümüzün maks 50%sini kullanabilir şeklinde bir kota koymak istiyoruz diyelim, komut satırımız aşağıdaki gibi olacak:

docker run -p 5000:5000 -m 512m --cpu-quota ozanzarci/hello-world-java:0.1

Not: cpu değeri verirken şuna dikkat etmelisiniz; cpu değerinin tamamı 100.000 birim demektir, 50%’sini verecekseniz 50000 değeri girmeniz gerekir yani yarısı, yüzde kaç değer olmasını istiyorsanız 100000 skalasına göre düşünmelisiniz, biz de 50%’sini kullanmasını istediğimiz için 50000 değeri verdik.

Komut satırını girdiğinizde container ayağa kalkacak, istatistikler kontrol etmek için tekrar yeni bir terminal açalım ve docker stats [container id] komutuyla görelim, bu container artık 512mb boyutundan fazla yer kaplayamaz ve 50% cpu kullanımı aşamaz.

İlgini Çekebilir

0 0 votes
Article Rating
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
View all comments
0
Would love your thoughts, please comment.x
()
x