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.