Ana içeriğe geç

Docker

Okunuşu
dokır
Güncellendi 2 dk okuma

Bu sayfayı paylaşın

Bağlantıyı gönderin, tanımı bağlantısıyla birlikte alıntılayın ya da kendi sitenizde bir kart olarak gösterin.

https://softwaredictionary.org/tr/terimler/docker

Kısaca

Docker, bir uygulamayı ve ihtiyaç duyduğu her şeyi, her makinede aynı şekilde çalışan bir konteyner içinde paketlemeye yarayan açık kaynaklı bir platformdur.

Docker nedir?

Docker, konteynerleri oluşturmak, paylaşmak ve çalıştırmak için kullanılan bir araçtır. Bir uygulamayı çalışma zamanı, kütüphaneler ve yapılandırmasıyla birlikte tek bir birim halinde paketler; böylece uygulama bir geliştiricinin dizüstü bilgisayarında, test sunucusunda ve canlı ortamda aynı şekilde davranır. Bu, klasik "bende çalışıyordu" sorununu çözer.

Uygulamanızın nasıl derleneceğini Dockerfile adlı bir metin dosyasında tarif edersiniz. docker build çalıştırmak bunu katmanlar halinde saklanan, salt okunur bir şablon olan imaja dönüştürür; docker run ise o imajın canlı ve yalıtılmış bir örneği olan konteyneri başlatır. İmajlar Docker Hub gibi registry'ler üzerinden paylaşılır; Docker Compose ise bir uygulama ile veritabanı gibi çok konteynerli yapıları tek komutla tanımlayıp başlatmanızı sağlar.

Fikir, nakliye konteynerlerinden esinlenmiştir: standart konteynerlerden önce her yük türü özel elleçleme gerektirirdi, oysa standart bir kutu her gemiye, trene ya da kamyona sığar. Docker imajları da aynı şekilde, uyumlu bir konteyner çalışma zamanına sahip her makinede çalışır.

Docker sıklıkla konteynerlerin kendisiyle ya da Kubernetes ile karıştırılır. Konteynerler temeldeki teknolojidir; Docker onları popüler ve kolay kullanılır hale getirmiştir. Docker ile oluşturulan imajlar açık OCI standardına uyar, bu yüzden containerd ve Podman gibi diğer çalışma zamanlarında da çalışır. Kubernetes ise birçok konteyneri bir makine kümesi üzerinde çalıştıran ve yöneten ayrı bir sistemdir.

Bir bakışta

docker build bir Dockerfile'ı katmanlardan oluşan, salt okunur bir imaja dönüştürür; imaj Docker Hub gibi bir registry'ye gönderilip (push) oradan çekilebilir (pull) ve her docker run aynı imajdan yeni bir konteyner başlatır.docker buildpushpulldocker rundocker rundocker runDockerfileFROM node:22COPY . /appRUN npm ciRegistryDocker Hubİmajsalt okunur şablonnpm paketleriuygulama dosyalarınode:22Konteyner 1Konteyner 2Konteyner 3
İmaj şablondur, her konteyner onun çalışan bir örneğidir; bu yüzden tek bir imajdan istediğiniz kadar aynı konteyneri başlatabilirsiniz.

Önemli noktalar

  • Docker, bir uygulamayı ve bağımlılıklarını bir konteyner imajında paketler.
  • İmajın nasıl oluşturulacağını bir Dockerfile tanımlar.
  • İmaj şablondur; konteyner ise onun çalışan bir örneğidir.
  • Docker Compose, çok konteynerli uygulamaları tek makinede çalıştırır.
  • Docker imajları OCI standardına uyar ve diğer konteyner çalışma zamanlarıyla da çalışır.

Örnek

Bir Node.js uygulaması için Dockerfiledockerfile
# Start from an official Node.js base image
FROM node:24-alpine

# Set the working directory inside the container
WORKDIR /app

# Install dependencies first to take advantage of layer caching
COPY package*.json ./
RUN npm ci --omit=dev

# Copy the rest of the source code and define the start command
COPY . .
EXPOSE 3000
CMD ["node", "server.js"]

Sık sorulan sorular

Docker ile sanal makine arasındaki fark nedir?

Sanal makine, kendi işletim sistemiyle tam bir bilgisayarı taklit eder; Docker konteyneri ise ana makinenin çekirdeğini paylaşır ve yalnızca uygulamayı ile bağımlılıklarını yalıtır. Sonuç olarak konteynerler çok daha küçüktür ve saniyeler içinde ya da daha kısa sürede başlar; sanal makineler ise daha güçlü yalıtım sağlar.

Docker imajı ile konteyner arasındaki fark nedir?

İmaj, uygulamayı ve bağımlılıklarını içeren salt okunur bir şablondur. Konteyner ise bu imajdan oluşturulan çalışan bir örnektir ve aynı imajdan birçok konteyner başlatabilirsiniz.

Docker ile Kubernetes arasındaki fark nedir?

Docker konteynerleri oluşturur ve genellikle tek bir makinede çalıştırır. Kubernetes ise bir makine kümesindeki birçok konteyneri düzenler; zamanlama, ölçekleme ve arızalardan kurtarmayı üstlenir.

Sık karşılaştırılanlar

İlgili sayfalar

Kaynaklar

Bu sayfada bir hata ya da eksik mi gördünüz?Düzeltme önerin

Daha fazla

Ayarlar