Docker’ı kurduktan ve hello-world‘ü çalıştırdıktan sonra doğal soru şudur: günlük işlerde hangi komutlara ihtiyacım olacak? Bu yazıda, neredeyse her Docker kullanıcısının her gün elle yazdığı temel komutları, ne işe yaradıklarını açıklayarak bir arada topluyoruz — bir nevi başvuru kartı.

Container’ları listelemek ve incelemek

# Sadece çalışan container'ları listele
docker ps

# Durdurulmuş olanlar dahil TÜM container'ları listele
docker ps -a

# Bir container'ın canlı log çıktısını izle
docker logs -f ilk-sunucum

# Çalışan bir container'ın kaynak kullanımını (CPU/RAM) canlı izle
docker stats

Container yaşam döngüsü: başlat, durdur, sil

# Arka planda (-d) çalıştır, isim ver, port eşle
docker run -d --name ilk-sunucum -p 8080:80 nginx:alpine

# Durdur / tekrar başlat
docker stop ilk-sunucum
docker start ilk-sunucum

# Durdur ve sil (container'ın içindeki veri de kaybolur)
docker rm -f ilk-sunucum
i

docker stop ile docker rm farklı şeylerdir: stop container’ı sadece durdurur, diskte kalır ve start ile tekrar ayağa kaldırılabilir. rm ise container’ı tamamen siler — içindeki, bir volume’e yazılmamış her veri de gider.

Çalışan bir container’ın içine girmek

Bir container’ın içinde neler olup bittiğini görmek veya elle bir komut çalıştırmak için exec kullanılır:

# Container içinde etkileşimli bir kabuk (shell) aç
docker exec -it ilk-sunucum sh

# Tek seferlik bir komut çalıştır (kabuğa girmeden)
docker exec ilk-sunucum ls /usr/share/nginx/html

-it bayrağı iki ayrı bayrağın birleşimidir: -i (interactive, giriş akışını açık tutar) ve -t (bir terminal (tty) tahsis eder). İkisi birlikte, tıpkı bir SSH oturumu gibi container içinde gezinmenizi sağlar.

İmajları yönetmek

# Yerelde indirilmiş tüm imajları listele
docker images

# Bir imajı Docker Hub'dan indir (çalıştırmadan)
docker pull postgres:16

# Kullanılmayan (hiçbir container'ın referans etmediği) imajları sil
docker image prune

# Belirli bir imajı sil
docker rmi postgres:16

Disk alanını temizlemek

Zamanla durmuş container’lar, kullanılmayan imajlar ve yetim (dangling) imajlar ve kullanılmayan anonim volume’ler disk alanı kaplamaya başlar. Tek komutla genel bir temizlik yapabilirsiniz:

# Durmuş container'ları, kullanılmayan ağları ve
# "dangling" imajları temizler (volume'lere dokunmaz)
docker system prune

# Kullanılmayan ANONİM volume'leri de dahil et (isim verdiğiniz volume'lere dokunmaz)
docker system prune --volumes

# Hiçbir container'a bağlı olmayan İSİMLİ volume'ler de silinsin (DİKKAT: veri kaybı!)
docker volume prune -a

# Ne kadar disk alanı kullanıldığını gör
docker system df

Sık kullanılan bayraklar — hızlı referans

Bayrak Anlamı
-d Arka planda (detached) çalıştır
-p host:container Host portunu container portuna eşle
-v host:container Bir dizini/volume’ü container’a bağla
-e DEĞİŞKEN=değer Ortam değişkeni tanımla
--name Container’a okunabilir bir isim ver
--rm Container durunca otomatik sil
--network Container’ı belirli bir ağa bağla

Bu komutlar günlük işlerinizin büyük çoğunluğunu karşılar. Verinizi container’ın yaşam döngüsünden bağımsız kalıcı hale getirmek istediğinizde (örneğin bir veritabanı için) devreye volume‘ler girer — bunu Docker Derinlemesine bölümündeki ilgili yazımızda ele alıyoruz.