Yazılımcıların bilmesi gereken temel Docker komutları
Herkese merhabalar. Bugünkü yazımızda sizlere önemli Docker komutlarından bahsedeceğiz. Özellikle yazılımcılarımızın bu yazıyı dikkatli okuması gerekiyor. Zira Docker kullanırken en çok bu komutlarla karşı karşıya kalacağız. Haydi yazımıza geçelim.
Öncelikle Docker neydi, hatırlayalım. Docker, uygulamaları daha taşınabilir ve dağıtımı daha kolay hale getirmek için ortamlarıyla birlikte paketleyen “konteynerleştirme” kullanarak dağıtılmış yazılımlar oluşturmaya yönelik açık kaynaklı bir platformdur.
Gücü ve üretkenliği sayesinde Docker, yazılım geliştirme ekipleri için inanılmaz derecede popüler bir teknoloji haline gelmiştir Docker’ı uygulamalarınızda kullanmadan önce bilmeniz gereken bazı kavramları işleyelim.
Layer(Katman): Container’ın altında bir yapıdır. Bir salt okunur dosya veya komut olarak düşünebilirsiniz. Her imaj bir katmanlı yapı oluşturur.
Image(İmaj): Container’ın oluşmasını sağlayan yapılardır. Uygulamanızın altyapısında çalışan gerekli işletim sistemi kütüphanelerinin bulunduğu bir yapıdır. Çalışmaya hazır bir şekilde bekletilen paketlerdir. hub.docker.com hazır imageların indirildiği platformdur. Oradan imageları inceleyebilirsiniz.
Container: Bağımsız bir uygulama olarak yürütülebilen imajların bir örneğidir. Container, imajın üzerinde yer alan ve alttaki katmanlardan ayrı olan değiştirilebilir bir katmana sahiptir.
Registry: Docker imajlarını dağıtmak için kullanılan bir depolama ve içerik dağıtım sistemidir.
Repository: Genellikle aynı uygulamanın farklı sürümleri olan ilgili Docker imajlarının bir koleksiyonu diyebiliriz.
Şimdi komutlara geçmeden önce biraz hap bilgilerle devam edelim.
- Docker image oluştururken boyutu mümkün olduğunca küçük tutun. Kitaplıkları ve bağımlılıkları imajınıza dahil etmeyin. Bu container oluştururken size avantaj sağlar ve hızlı çalışmasına olanak verir.
- Uygulamanızın ölçeklenebilir olması gerekiyorsa, bir node clusterı tek bir sanal sistem olarak yönetmeye yönelik bir araç olan Docker Swarm’ı kullanmayı düşünün.
- Maksimum verimlilik için Docker’ı sürekli entegrasyon ve sürekli dağıtım uygulamalarıyla birlikte kullanın. Kaynak koddan görüntüleri otomatik olarak oluşturmak ve bunları bir Docker deposuna göndermek için Docker Cloud gibi hizmetleri kullanabilirsiniz.
Docker Containers ile Geliştirme İşlemleri:
docker create [image]: Belirli bir imagedan yeni bir container oluşturun.
docker login: Docker Hub deposunda oturum açın.
docker pull [image]: Docker Hub deposundan bir imaj çekin. İmage adını girerek kendi lokalinize o imajı indirebilirsiniz.
docker push [kullanıcı adı/resim]: Docker Hub deposuna bir resim gönderir.
docker search [term]: Belirli bir terim için Docker Hub deposunu arayın.
docker tag [kaynak] [hedef]: Bir kaynak görüntüye başvuran bir hedef etiket veya takma ad oluşturun.
Örnek olarak bir imaj çekelim.

Ben örnek olarak redis imajını lokalime çektim.

Docker Containers ile Çalıştırma İşlemleri:
docker start [container]: Belirli bir containerı başlatın.
docker stop [container]: Belirli bir containerı durdurun.
docker exec -ti [container] [command]: Belirli bir container içinde yer alan bir kabuk komutu çalıştırın.
docker run -ti — image [image] [container] [command]: Aynı anda bir container oluşturup başlatın ve ardından içinde bir komut çalıştırın.
docker run -ti — rm — image [image] [container] [command]: Aynı anda bir container oluşturun ve başlatın, içinde bir komut çalıştırın ve ardından komutu yürüttükten sonra containerı kaldırın.
docker pause [container]: Belirli bir container içinde çalışan tüm işlemleri duraklatın.
Docker yardımcı komutlarımız:
docker history [image]: Belirli bir imajın geçmişini görüntüler.
docker images: Şu anda sistemde depolanan tüm imajları listeler.
docker inspect [object]: Belirli bir Docker nesnesi hakkında düşük seviyeli bilgileri görüntüler.
docker ps: Şu anda çalışmakta olan tüm containerları listeler.
docker version: Şu anda sistemde yüklü olan Docker sürümünü görüntüler.
Docker ortamlarımızı temizleyelim:
docker kill [container]: Belirli bir containerı kaldırır,yok eder
docker kill $(docker ps -q): Şu anda çalışan tüm containerları yok eder.
docker rm [container]: Şu anda çalışmayan belirli bir containerı siler.
docker rm $(docker ps -a -q): Şu anda çalışmayan tüm containerları siler.
Atladığım komutlar mutlaka olacaktır ama işimize yarayan önemli komutları listeledik.

Evet arkadaşlar beraber bazı docker komutlarımızı inceledik. Yukarıda gördüğünüz üzere Docker Desktop uygulamamda şu an 2 imajım bulunmaktadır. Biraz pratik yapalım.
İmajlarımı listeledim.

Şimdi bu imajımın geçmişini görüntüleyim. Arka plandan neler yapmış sıralansın.

Docker containerım da görüntüleyeyim.

Arkadaşlar ben bir isim vermediğim için docker benim konteyner adımı funny_tesla olarak belirlemiş.
Bu yazımızın burada sonuna gelelim. Daha fazla işlem yapmayalım. Sizler çalışmalarınızda hata alırsanız yorumlardan bize ulaşabilirsiniz. Bizi latestsoftwaredevelopers.com adresinden de takip edebilirsiniz.
İyi çalışmalar. Mutlu kodlamalar dilerim.