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 prunedocker volume prunedocker network prunedocker 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 ubuntu | Image indirir. |
docker images | Image listesini gösterir. |
docker run -it ubuntu | Interactive terminal açar. |
docker ps | Çalışan container'ları listeler. |
docker ps -a | Tüm container'ları gösterir. |
docker start | Container başlatır. |
docker stop | Container durdurur. |
docker rm | Container siler. |
docker rmi | Image siler. |
docker logs | Container loglarını gösterir. |
docker exec -it | Container içine terminal açar. |
docker inspect | Detaylı yapılandırma bilgisi verir. |
docker network ls | Networkleri listeler. |
docker build . | Dockerfile'dan image oluşturur. |
docker container prune | Durmuş 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.
