Docker Nedir ? Image, Container ve Temel Komutlar


Docker Nedir? Docker Host, Docker Hub ve En Çok Kullanılan Docker Komutları (Detaylı Rehber)

Docker, yazılım geliştirme ve dağıtım süreçlerini standartlaştıran en popüler container teknolojilerinden biridir. Bu rehberde Docker Host, Docker Hub, Docker Image, Container kavramlarını ve günlük hayatta en çok kullanılan Docker komutlarını örneklerle öğreneceksiniz.

Docker Host ve Docker Hub Nedir?

Docker kurulumu yapıldığında bilgisayarımıza yüklenen servis Docker Host veya Docker Engine olarak adlandırılır. Docker Host, image'ları indirir, container'ları oluşturur ve çalıştırır.

Docker Hub ise Docker image'larının bulunduğu resmi depodur. İhtiyacımız olan image'ları Docker Hub üzerinden bilgisayarımıza indiririz.

Docker Hub'dan Image İndirme

Ubuntu veya MongoDB image'ını indirmek için aşağıdaki komutlar kullanılır.

docker pull ubuntu

docker pull mongo

docker pull komutu yalnızca image'ı indirir, container oluşturmaz.


Docker Container Nasıl Çalıştırılır?

Bir image'dan container oluşturup çalıştırmak için docker run komutu kullanılır.

docker run ubuntu

docker run mongo

Eğer image bilgisayarınızda bulunmuyorsa Docker önce Docker Hub'dan indirir, ardından container'ı oluşturup çalıştırır.


Docker'ın Sağladığı Avantajlar

  • Container'lar proses izolasyonu sayesinde birbirini etkilemez.
  • Uygulamalar bilgisayara kurulum gerektirmeden çalıştırılabilir.
  • Development, Test ve Production ortamlarının birebir aynı olmasını sağlar.
  • Geliştirici ile DevOps ekipleri arasında ortam farklılıklarını ortadan kaldırır.
  • Taşınabilir ve hızlı dağıtılabilir uygulama mimarisi sunar.

Docker Tag Nedir?

Docker Tag, image'ın sürüm bilgisidir.

Örneğin redis:5 ifadesinde:

  • redis → Image adı
  • 5 → Image'ın sürümü (tag)

Tag kullanmazsanız Docker varsayılan olarak latest sürümünü indirir.


En Çok Kullanılan Docker Komutları

1. Image İndirmek

Docker Hub'dan image indirir.

docker pull ubuntu

2. İndirilen Image'ları Listelemek

docker images

Bilgisayarınızdaki tüm image'ları listeler.


3. Container Oluşturmak ve Çalıştırmak

docker run ubuntu

Ubuntu container'ı oluşturur ve çalıştırır.

Ubuntu çalıştıktan sonra yapacağı işlem olmadığı için hemen kapanır.

Interactive Terminal ile Çalıştırma

docker run -it ubuntu

-it parametresi "Interactive Terminal" anlamına gelir. Container içerisinde terminal açılır ve Linux komutları çalıştırabilirsiniz.

Container'dan çıkmak için:

exit

4. Çalışan Container'ları Görüntülemek

docker ps

Sadece çalışan container'ları gösterir.

Tüm container'ları görmek için:

docker ps -a

Bu komut durdurulmuş container'ları da listeler.


5. Container Listesi (Alternatif Komut)

docker container ls

docker ps komutu ile aynı işi yapar.

Gösterdiği bilgiler:

  • Container ID
  • Image
  • Command
  • Created
  • Status
  • Ports
  • Name

6. Container'a İsim Vermek

docker run -it --name bash_ubuntu ubuntu

--name parametresi ile container'a özel isim verilir.

Bu sayede ID yerine isim kullanabilirsiniz.


7. Container'ı Tekrar Başlatmak

docker start bash_ubuntu

Daha önce oluşturulan container tekrar ayağa kalkar.


8. Container'ı Durdurmak

docker stop bash_ubuntu

İsim yerine Container ID de kullanılabilir.

docker stop 3a5b2f1d9c12

9. Container Silmek

docker rm bash_ubuntu

Birden fazla container aynı anda silinebilir.

docker rm container1 container2 container3

10. Tüm Container'ları Silmek

docker container rm $(docker container ls -aq)

Çalışmayan tüm container'ları tek komutla siler.


11. Belirli Bir Sürüm (Tag) ile Çalıştırmak

docker run redis:5

Redis'in 5 numaralı sürümünü indirir ve çalıştırır.


12. Image'a Yeni Tag Vermek

docker image tag imageName tagName

Örneğin:

docker image tag redis:5 redis:test

13. Arka Planda (Detach Mode) Çalıştırmak

docker run -d redis

-d parametresi sayesinde container arka planda çalışır ve terminal size geri döner.


14. Çalışan Container'a Tekrar Bağlanmak

docker attach containerID

Detach modda çalışan container'ın ekranına bağlanır.


15. Container Loglarını Görmek

docker container logs containerID

Arka planda çalışan uygulamanın loglarını görüntüler.


16. Container İsmini Değiştirmek

docker rename OLD_NAME NEW_NAME

Mevcut container'ın ismini değiştirir.


17. Image Silmek

docker rmi IMAGE_ID

docker rmi ubuntu

Image bilgisayardan kaldırılır.


18. Port Yönlendirme

docker run -p 3001:3000 containerName

Bilgisayarın 3001 portunu container'ın 3000 portuna yönlendirir.

Bilgisayar Container
3001 3000

19. Volume Kullanımı

docker run -v /opt/data:/data/db mongo

Host makinedeki verileri container içine bağlar.

Host Container
/opt/data /data/db

Container silinse bile veriler host makinede kalır.


Docker Network Oluşturma

Container'ların birbirleriyle haberleşebilmesi için özel network oluşturulabilir.

docker network create \
--driver bridge \
--subnet 182.18.0.0/24 \
--gateway 182.18.0.1 \
custom-network

Bu komut:

  • Bridge tipinde ağ oluşturur.
  • Subnet tanımlar.
  • Gateway belirler.
  • Network ismini custom-network yapar.

Networkleri Listelemek

docker network ls

Network Silmek

docker network rm custom-network

Bridge Network Bilgilerini Görmek

docker inspect bridge

Container'ı Belirli Network'te Başlatmak

docker run --net custom-network mongo

Aynı network üzerindeki container'lar isimleriyle birbirlerine erişebilir.


Docker Inspect Komutu

docker inspect containerName

Container veya image hakkında ayrıntılı bilgiler verir.

Örneğin:

  • IP adresi
  • Port Binding
  • Volume Mapping
  • Environment Variables
  • Network Bilgileri

Dockerfile'dan Image Oluşturmak

docker build .

Bulunduğunuz klasördeki Dockerfile dosyasını kullanarak yeni bir image oluşturur.


Kullanılmayan Container'ları Temizlemek

docker container prune

Tüm durmuş container'ları siler.

Benzer komutlar:

  • docker image prune
  • docker volume prune
  • docker network prune
  • docker system prune

Çalışan Container İçine Terminal ile Girmek

docker exec -it containerName /bin/bash

Container'ın Bash terminalini açar.

Alpine Linux gibi bazı image'larda Bash yerine sh kullanılabilir.

docker exec -it containerName sh

Docker Komutları Özet Tablosu

Komut Açıklama
docker pull ubuntuImage indirir.
docker imagesImage listesini gösterir.
docker run -it ubuntuInteractive terminal açar.
docker psÇalışan container'ları listeler.
docker ps -aTüm container'ları gösterir.
docker startContainer başlatır.
docker stopContainer durdurur.
docker rmContainer siler.
docker rmiImage siler.
docker logsContainer loglarını gösterir.
docker exec -itContainer içine terminal açar.
docker inspectDetaylı yapılandırma bilgisi verir.
docker network lsNetworkleri listeler.
docker build .Dockerfile'dan image oluşturur.
docker container pruneDurmuş container'ları temizler.

Sonuç

Docker; uygulamaları izole, taşınabilir ve tutarlı ortamlarda çalıştırmayı sağlayan güçlü bir container platformudur. Özellikle yazılım geliştirme, test ve production süreçlerinde aynı ortamı garanti ederek kurulum problemlerini büyük ölçüde ortadan kaldırır. Bu rehberde öğrendiğiniz temel Docker komutları günlük geliştirme süreçlerinde en sık kullanılan komutlardır.

Daha yeni Daha eski