Docker Nedir , Docker Container Yapısı, Docker Komutları
Docker Nedir?
Docker Nedir , Docker Container Yapısı, Docker Komutları

Docker Nedir?
Docker , geliştiricilerin konteynerleri kullanarak uygulamaları kolayca geliştirmelerine, dağıtmalarına ve çalıştırmalarına olanak tanıyan bir platformdur. Konteynerler, yazılımı paketlemek ve dağıtmak için hafif ve taşınabilir bir yöntemdir, bu da uygulamaları farklı ortamlar arasında ve farklı platformlar arasında daha kolay taşınır hale getirir. Docker, yazılım geliştirme ve dağıtımında popüler bir araç haline gelmiştir ve dünya genelinde birçok şirket ve kuruluş tarafından kullanılmaktadır.
Docker Daemon:
Docker Daemon, Linux Kernel ile direkt iletişim halinde olan Docker’ın arka planında çalışan motorudur. Bu motor, Docker CLI ile kullanıcının komutlarını alır ve konteynerlerin oluşturulması, çalıştırılması, durdurulması vb. işlemlerini gerçekleştirir.
Docker CLI (Command-Line Interface):
Daemon (Motor) ile iletişim kurmamıza olanak tanır. Komutlar CLI ye yazılır.

Container Nedir:
Docker Daemon tarafından Linux çekirdeği içerisinde birbirinden izole olarak çalıştırılan process’lerin her birine verilen isimdir.Docker container, uygulamanın gereksinim duyduğu tüm kütüphane, dosya, araçlar ve diğer bağımlılıkların bulunduğu bir çevre sağlar. Bu sayede uygulama, farklı bilgisayar sistemlerinde, bulut hizmetlerinde veya sunucularda çalıştırılabilir. Docker container, uygulamaların birlikte çalışması gereken farklı bağımlılıklar ve gereksinimler olduğunda bile birbiriyle uyumlu şekilde çalışmasını sağlar. Her Docker container, ayrı bir izolasyon ve güvenlik duvarına sahiptir ve kendi sanal çevresinde çalışır. Bu sayede, bir uygulama herhangi bir çevreye zarar vermeden çalışabilir ve diğer uygulamalarla çakışmadan çalışabilir. Ayrıca Docker container, hafif ve taşınabilir bir yapıya sahiptir ve hızlı bir şekilde başlatılabilir veya durdurulabilir.
Docker Daemon (Docker Engine):
Docker ekosistemindeki Hypervisor’ün tam olarak karşılığıdır. Linux Kernel’inde bulunan LXC’nin yerini almıştır.İşlevi Container’ların birbirlerinden izole bir şekilde, Image’larda tanımlarının yapıldığı gibi çalışmaları için gerekli yardım ve yataklığı yani ortamı sağlamaktır.
Docker Registry:
Zaten bir teknoloji harikası olan Docker’ı daha da kullanılabilir ve değerli kılan bir özellik bütün açık kaynak sistemler gibi paylaşımı özendirmesi, adeta işin merkezine koymasıdır.Tıpkı github gibi geliştiriciler açık kaynaklı olarak docker imagelerini yükleyerek ve DockerHub’ta paylaşarak imagelerin bizim de indirip kullanmamıza olanak sağlıyorlar. Kısaca imagelar Docker Registrylerde tutuluyor.
youtube.com/watch?v=0e-KiGJIiDc
Bazı Önemli Komutlar:
**Docker ps:**Bu adımda çalıştırdığımız Container ile ilgili biraz bilgi edinmeye çalışalım. docker ps komutunu vererek çalışan Container’ları listeleyebiliriz. Bu komutu vererek devam edelim.
**Docker ps -a **:Çalıştırılan koşan ve çıkış (exit) yapan Container’ları görmek için docker ps -a komutunu kullanabiliriz.
**Docker exec -it <container_id> /bin/bash:** komutu ile Container’a bir Bash Shell açabiliriz. -i interaktif terminali -tise terminalin attach olmasını istediğimizi belirtir. docker exec -it 54b /bin/bashkomutunu çalıştırın .Container ID’nin sadece baştan birkaç harfini vermemizin yettiğine -çakışma olmadığı müddetçe- dikkat edin.
Docker CLI Kopya Kağıdı:
docker images:Lokal registry’de mevcut bulunan Image’ları listeler.
docker psHalihazırda çalışmakta olan Container’ları listeler.
docker ps -aDocker Daemon üzerindeki bütün Container’ları listeler.
docker ps -aqDocker Daemon üzerindeki bütün Container’ların ID’lerini listeler.
docker pull <repository_name>/<image_name>:<image_tag>Belirtilen Image’ı lokal registry’ye indirir. Örnek: docker pull gsengun/jmeter3.0:1.7docker top <container_id>İlgili Container’da top komutunu çalıştırarak çıktısını gösterir.
docker run -it <image_id|image_name> CMDVerilen Image’dan terminal’i attach ederek bir Container oluşturur.
docker pause <container_id>İlgili Container’ı duraklatır.
docker unpause <container_id>İlgili Container pause ile duraklatılmış ise çalışmasına devam ettirilir.
docker stop <container_id>İlgili Container’ı durdurur.
docker start <container_id>İlgili Container’ı durdurulmuşsa tekrar başlatır.
docker rm <container_id>İlgili Container’ı kaldırır fakat ilişkili Volume’lara dokunmaz.
docker rm -v <container_id>İlgili Container’ı ilişkili Volume’lar ile birlikte kaldırır.
docker rm -f <container_id>İlgili Container’ı zorlayarak kaldırır. Çalışan bir Container ancak -f ile kaldırılabilir.
docker rmi <image_id|image_name>İlgili Image’ı siler.
docker rmi -f <image_id|image_name>İlgili Image’ı zorlayarak kaldırır, başka isimlerle Tag’lenmiş Image’lar -f ile kaldırılabilir.
docker infoDocker Daemon’la ilgili özet bilgiler verir.
docker inspect <container_id>İlgili Container’la ilgili detaylı bilgiler verir
docker inspect <image_id|image_name>İlgili Image’la ilgili detaylı bilgiler verir.
docker rm $(docker ps -aq)Bütün Container’ları kaldırır.
docker stop $(docker ps -aq)Çalışan bütün Container’ları durdurur.
docker rmi $(docker images -aq)Bütün Image’ları kaldırır.
docker images -q -f dangling=trueDangling (taglenmemiş ve bir Container ile ilişkilendirilmemiş) Image’ları listeler.
docker rmi $(docker images -q -f dangling=true)Dangling Image’ları kaldırır.
docker volume ls -f dangling=trueDangling Volume’ları listeler.
docker volume rm $(docker volume ls -f dangling=true -q)Danling Volume’ları kaldırır.
docker logs <container_id>İlgili Container’ın terminalinde o ana kadar oluşan çıktıyı gösterir.
docker logs -f <container_id>İlgili Container’ın terminalinde o ana kadar oluşan çıktıyı gösterir ve -f follow parametresi ile o andan sonra oluşan logları da göstermeye devam eder.
docker exec <container_id> <command>Çalışan bir Container içinde bir komut koşturmak için kullanılır.
docker exec -it <container_id> /bin/bashÇalışan bir Container içinde terminal açmak için kullanılır. İlgili Image’da /bin/bash bulunduğu varsayımı ile.
docker attach <container_id>Önceden detached modda -d başlatılan bir Container’a attach olmak için kullanılır.

Instruction (komut):
Dockerfile metin bazlı fakat YAML, JSON, XML tarzı herhangi bir serializasyon formatı içermeyen satır bazlı olarak Instruction’ları (komut) ayıran bir dosyadır. Genel olarak Instruction’ların formatı aşağıdaki gibidir. #ile başlayan bütün satırlar yorum olarak değerlendirilmektedir.
CMD:
İlk blog’da üzerinde defalarca durulduğu gibi Docker Daemon bir Image’dan Container oluşturulması sürecinde, Image’ı çalıştırmaya hazırladıktan ve gerekli sanallaştırmayı yaptıktan sonra kontrolü Container’ın belirlediği bir komutu çalıştırarak Container’a devretmektedir. CMD ile Image için çalışacak default komut belirlenmektedir.
ADD (Eklemek):
Oluşturacağımız Image’e Host dosya sisteminden veya internetten yeni bir dosya/klasör eklemek için kullanılır ADD komutu. Aşağıdaki gibi iki formatta kullanılabilir, src (source - kaynak) ve dest (destination - hedef) path’lerde boşluk bulunması ihtimaline karşın ikinci formatın kullanılması daha uygun görünmektedir. İnternetten dosya indirebilir.
WORKDIR:
WORKDIR Instruction’ı kendisinden sonra gelen RUN, CMD, ENTRYPOINT, COPY and ADD Instruction’larını etkiler ve bu Instruction’lar Daemon tarafından koşturulurken relatif olarak kullanılan path’lerin başına bu Instruction’la sağlanan path’i ekler. Bu açıklama komut satırını sıklıkla kullanmamış olan kişilere biraz karmaşık gelmiş olabilir. Bir örnek vererek açıklayalım.

Dockerfile metin dosyasıdır ve Image oluşturmak için kullanılır. Dosya, Docker Daemon(docker engine) tarafından okunur ve Image’ın içeriğini ve Image’ın çalışması için gereken talimatları içerir. Dosya, Instruction (komut) adı verilen ve Image’ın nasıl oluşturulacağını özetleyen satır bazlı bir dosyadır. Dockerfile, her bir Instruction’ı bir satırda yazarak oluşturulur. İlgili Instruction’ın ne yapacağı açıklanır ve argümanlar belirtilir.Komutlar sırasıyla çalışır.
Aşağıdaki Instruction’lar en sık kullanılanlardır:
FROM: Image'ın temel alınacağı Image'ın adı belirtilir.RUN: Yeni layer'ı yaratır ve komutu çalıştırır.COPYveADD: Host dosya sisteminden veya internetten dosya/klasör eklemek için kullanılır.WORKDIR: Sıralı Instruction'ların referansı olarak kullanılacak çalışma dizininin belirlendiği Instruction'dır.CMD: Docker'da bir Image, Container'a dönüştürüldüğünde çalıştırılacak varsayılan komut belirtilir.EXPOSE: Container'ın belirtilen portlarını host'a açar.ENV: Ortam değişkenleri tanımlar.ENTRYPOINT: Docker'da bir Image, Container'a dönüştürüldüğünde çalıştırılacak varsayılan komut belirtilir. CMD'den farkı, herhangi bir parametre ile birlikte çalıştırılabilir olmasıdır.
Dockerfile oluşturulduktan sonra, docker build komutu kullanılarak Image oluşturulur. Bu komut, Dockerfile'ın bulunduğu dizinde çalıştırılır. Oluşturulan Image, Docker Hub gibi bir registry'de depolanabilir.

Docker Image, herhangi bir uygulamanın çalıştırılması için gerekli olan sistem dosyalarını, kütüphaneleri ve uygulama kodunu içeren bir pakettir. Docker Image, farklı uygulama ve sistem yapılandırmaları için kullanılabilir ve uygulamanın taşınabilirliğini arttırır. Ayrıca, Docker Image’lar, Docker Hub gibi bir registry’de depolanabilir ve paylaşılabilir.
Docker Puss:
“Docker Puss” diye bir teknoloji yoktur. Muhtemelen yanlış yazılmış “Docker Push” yani Docker Image’larını bir Registry’e yüklemek için kullanılan bir komuttur.
Docker pull:
docker pull, Docker Hub gibi bir Docker registry'sinden bir Docker Image'ını indirmek için kullanılan bir komuttur. Bu komut, docker pull <repository_name>/<image_name>:<tag> formatında kullanılır. Örneğin, docker pull ubuntu:latest komutu, en son Ubuntu Image'ını Docker Hub'dan indirir.
Docker Volume:
Docker Volume, Docker container’larının kullanabileceği bir depolama alanıdır. Volume’lar, container’larla birlikte çalışan veritabanları, log dosyaları ve diğer veriler gibi uygulamanın durumunu saklamak için kullanılır. Docker Volume’lar, container’lar arasında veri paylaşımı da yapmanızı sağlar. Bir Docker Volume oluşturmak için, docker volume create <volume_name> komutu kullanılır. Oluşturulan Volume'lar, docker volume ls komutu ile listelenebilir. Volume'ların detaylarına docker volume inspect <volume_name> komutu ile erişilebilir. Bir Volume'a monte edilen container'lar, docker volume rm <volume_name> komutu ile silinebilir.

메타데이터
- post_id
- c79f6e82cc5a
- slug
- docker-nedir-docker-container-yapısı-docker-komutları-c79f6e82cc5a
- url
- https://medium.com/@abdullahbecet/docker-nedir-docker-container-yap%C4%B1s%C4%B1-docker-komutlar%C4%B1-c79f6e82cc5a
- canonical_url
- https://medium.com/@abdullahbecet/docker-nedir-docker-container-yap%C4%B1s%C4%B1-docker-komutlar%C4%B1-c79f6e82cc5a
- author_url
- https://medium.com/@abdullahbecet
- status
- ok
- fetched_at
- 2026-08-04 23:39:55