Programlama

Docker

Docker nedir?

Docker, programı kütüphaneleriyle birlikte paketler. “Benim bilgisayarımda çalışıyordu” farkı azalır. Bu tam sanal makine değildir. Çekirdeği host ile paylaşır, bu yüzden daha hafiftir. Ubuntu sunucusuna Docker kurmak olağan yoldur.

Docker ne için kullanılır?

Aynı ortamı geliştirici makinesinde ve sunucuda tutmak içindir.

  • Uygulamayı image olarak derlemek
  • Veritabanını yerelde kaldırmak
  • CI’de aynı testi çalıştırmak
  • Bir sunucuda birkaç servisi ayırmak

Docker ile ne yapılabilir?

Dockerfile adımları yazar: taban image, paket, komut. docker run o image’den konteyner açar. Ağ portu ve disk hacmi ayrıca bağlanır. Docker güvenlik duvarının ve HTTPS sertifikasının yerine geçmez.

Docker öğrenmek zor mu?

hello-world çabuk açılır. Zorluk image boyutu, gizli bilgiyi image içine yazmak ve ağdır. Parola ve anahtar image içine konmamalıdır. Çalışırken ortamdan verilmelidir.

Avantajları ve sınırları

Avantaj: ortam yinelenir, sunucudaki ek paket dağınıklığı azalır. Sınır: öğrenme vardır, disk dolar, kötü yazılmış image eski açığı taşır. Konteyner içinde root geniş hak verebilir.

Temel kavramlar

Image okunur şablondur. Konteyner ondan doğan süreçtir. Registry, örneğin Docker Hub, image saklar.

  • Dockerfile yönerge listesidir
  • docker build image yaratır
  • port -p 8080:80 ile eşlenir
  • volume, konteyner silinince veriyi saklayabilir

Kısa örnek

Bu komut deneme image’ini indirir, çalıştırır ve bitince siler.

docker run --rm hello-world

Sık sorulan sorular

  • Docker sanal makine mi? Hayır. Çekirdeği paylaşan konteynerdir.
  • Image ve konteyner aynı mı? Hayır. Image şablondur, konteyner çalışan kopyadır.
  • Docker HTTPS verir mi? Hayır. Şifreleme sertifikadadır, genellikle Nginx tarafında.