Docker Nedir? Ne için Kullanılır?
Docker geliştiricilerin uygulama geliştirmesini, test etmesini ve devreye almasını sağlayan, işletim sistemi seviyesinde sanallaştırma imkanı sunan programdır. Bu yazımızda Docker nedir ve docker ne için kullanılır sorularını yanıtladık.
06.07.2021 tarihli yazı 4205 kez okunmuştur.
Docker, kapsayıcılar ve kapsayıcı tabanlı uygulamalar oluşturmayı kolaylaştıran açık kaynaklı bir projedir. Aslen Linux için geliştirilen Docker, artık Windows ve MacOS'ta da çalışır vaziyettedir. Docker'ın nasıl çalıştığını anlamak için öncelikle kullanacağımız bazı bileşenlere bir göz atmamız gerekiyor.
Docker, "konteyner" adı verilen yazılım paketlerini çalıştırmak için kullanılmaktadır. Konteynerlar uygulama geliştirirken çevresinden tamamen izole bir ortam sağlar. Her Docker kapsayıcısı bir Dockerfile ile başlar. Dockerfile, bir Docker görüntüsü oluşturma talimatlarını içeren, anlaşılması kolay sözdiziminde yazılmış bir metin dosyasıdır.
Docker, "konteyner" adı verilen yazılım paketlerini çalıştırmak için kullanılmaktadır. Konteynerlar uygulama geliştirirken çevresinden tamamen izole bir ortam sağlar. Her Docker kapsayıcısı bir Dockerfile ile başlar. Dockerfile, bir Docker görüntüsü oluşturma talimatlarını içeren, anlaşılması kolay sözdiziminde yazılmış bir metin dosyasıdır.
►İlginizi Çekebilir: Açık Kaynak Veri Tabanı Nedir?
Dockerfile
Dockerfile; diller, çevresel değişkenler, dosya konumları, ağ bağlantı noktaları ve ihtiyaç duyduğu diğer bileşenlerle birlikte kapsayıcının temelini oluşturacak işletim sistemini ve çalıştırdığımızda konteynerin gerçekte ne yapacağını belirtir.
Docker Image
Dockerfile'ınızı yazdıktan sonra, o Dockerfile'a dayalı bir görüntü oluşturmak için Docker build yardımcı programı çalıştırılır. Dockerfile, görüntünün nasıl oluşturulacağını söyleyen talimatlar dizisi iken bir Docker Image, konteynırın hangi yazılım bileşenleri için ve nasıl çalışacağı özelliklerini içeren taşınabilir bir dosyadır.
Docker’da aşağıdaki üç aşamaya ihtiyaç duyulmaktadır.
1)Tanım Dosyası: Konteynerımızın içindeki ayarlamaların yapıldığı kısım
2)İmaj: Tanım dosyasını build ederek bir imaj yaratılır
3)Konteyner: İmajı çalıştırılarak oluşturulur.
Docker’da aşağıdaki üç aşamaya ihtiyaç duyulmaktadır.
1)Tanım Dosyası: Konteynerımızın içindeki ayarlamaların yapıldığı kısım
2)İmaj: Tanım dosyasını build ederek bir imaj yaratılır
3)Konteyner: İmajı çalıştırılarak oluşturulur.
Docker Nasıl Çalışır?
Docker teknolojisi, Linux ve Cgroups gibi çekirdeğin özelliklerini kullanır. Bağımsız olarak çalışabilmeleri için süreçleri ayıran Docker’ın bağımsızlığı, farklı sistemlerle sahip olacağınız güvenliği korurken altyapınızı daha iyi kullanmak için birden çok işlemi ve uygulamayı birbirinden ayrı çalıştırma yeteneği sunar. Docker dahil olmak üzere kapsayıcı araçları, görüntü tabanlı bir dağıtım modeli sağlar.
Linux kapsayıcılarının üzerine inşa edilen bu araçlar, kullanıcılara uygulamalara benzeri görülmemiş erişim, hızlı bir şekilde dağıtma ve sürüm dağıtımını kontrol etme yeteneği sağlar.
Linux kapsayıcılarının üzerine inşa edilen bu araçlar, kullanıcılara uygulamalara benzeri görülmemiş erişim, hızlı bir şekilde dağıtma ve sürüm dağıtımını kontrol etme yeteneği sağlar.
►İlginizi Çekebilir: Sanal Bellek Nedir? Nasıl Çalışır?
Docker’ın Avantajları
Modülerlik: Docker'ın konteynerleştirme yaklaşımı, bir uygulamanın tamamını kaldırmak zorunda kalmadan güncellemek veya onarmak için bir uygulamanın bir bölümünü kaldırma yeteneğine odaklanır.
Katmanlar ve görüntü versiyon kontrolü: Her Docker görüntü dosyası, tek bir görüntüde birleştirilen bir dizi katmandan oluşur. Görüntü değiştiğinde bir katman oluşturulur. Kullanıcı, çalıştır veya kopyala gibi bir komutu her belirttiğinde, yeni bir katman oluşturulur.
Rollback: Katmanlamanın belki de en iyi yanı, geri dönme yeteneğidir. Her görüntünün katmanları vardır. Bir görüntünün mevcut yinelemesini beğenmediğinizde önceki sürüme döndürebilirsiniz. Bu, çevik bir geliştirme yaklaşımını destekler.
Hızlı dağıtım: Yeni donanımı kurmak, çalıştırmak, tedarik etmek ve kullanılabilir duruma getirmek önceden büyük bir zaman ve emek alırdı. Ayrıca bu süreç, büyük maddi harcamalara da neden olurdu. Docker tabanlı konteynerler, dağıtımı saniyelere indirebilir. Her işlem için bir konteyner oluşturarak, bu işlemleri yeni uygulamalarla hızla paylaşabilirsiniz.
Katmanlar ve görüntü versiyon kontrolü: Her Docker görüntü dosyası, tek bir görüntüde birleştirilen bir dizi katmandan oluşur. Görüntü değiştiğinde bir katman oluşturulur. Kullanıcı, çalıştır veya kopyala gibi bir komutu her belirttiğinde, yeni bir katman oluşturulur.
Rollback: Katmanlamanın belki de en iyi yanı, geri dönme yeteneğidir. Her görüntünün katmanları vardır. Bir görüntünün mevcut yinelemesini beğenmediğinizde önceki sürüme döndürebilirsiniz. Bu, çevik bir geliştirme yaklaşımını destekler.
Hızlı dağıtım: Yeni donanımı kurmak, çalıştırmak, tedarik etmek ve kullanılabilir duruma getirmek önceden büyük bir zaman ve emek alırdı. Ayrıca bu süreç, büyük maddi harcamalara da neden olurdu. Docker tabanlı konteynerler, dağıtımı saniyelere indirebilir. Her işlem için bir konteyner oluşturarak, bu işlemleri yeni uygulamalarla hızla paylaşabilirsiniz.
Docker'ı Kullanmanın Sınırlamaları Var mı?
Docker, tek başına tek konteyner yönetebilir. Yüzlerce parçaya ayrılmış konteynerler ve kapsayıcı uygulama ile yönetim ve düzenleme zorlaşabilir. Sonunda, tüm kapsayıcılarınızda ağ oluşturma, güvenlik, telemetri ve daha fazlasını sunmak için bir geri atmanız ve konteynerleri gruplandırmanız gerekir.
Docker vs Sanal Makine
Yukarıdaki şekilde görüldüğü gibi sanal makinelerde bilgisayar sunucusunda üç temel katman bulunur. Her sanal makine için kendine özgü işletim sistemi ve gerekli kütüphaneleri vardır. Ancak Docker için bilgisayar sunucusu sadece altyapı ve işletim sistemini içerir. Böylelikle kapsayıcılar yalıtılmış bir şekilde tutulur.
Şekil: Docker ve Sanal Makineler karşılaştırması
Daha az kaynak gereksinimi olan kapsayıcılar ile kolaylıkla dağıtım yapılır ve hızlı bir başlangıç gerçekleştirilir. Aynı donanım biriminde daha fazla hizmet çalıştırılırken, maliyetler de azalır.
Kaynaklar:
►redhat.com/en/topics/containers/what-is-docker
►infoworld.com/article/3204171/what-is-docker-the-spark-for-the-container-revolution.html
►docs.microsoft.com/tr-tr/dotnet/architecture/containerized-lifecycle/what-is-docker
YORUMLAR
Aktif etkinlik bulunmamaktadır.
- Dünyanın En Görkemli 10 Güneş Tarlası
- Dünyanın En Büyük 10 Makinesi
- 2020’nin En İyi 10 Kişisel Robotu
- Programlamaya Erken Yaşta Başlayan 7 Ünlü Bilgisayar Programcısı
- Üretimin Geleceğinde Etkili Olacak 10 Beceri
- Olağan Üstü Tasarıma Sahip 5 Köprü
- Dünyanın En İyi Bilim ve Teknoloji Müzeleri
- En İyi 5 Tıbbi Robot
- Dünyanın En Zengin 10 Mühendisi
- Üretim için 6 Fabrikasyon İşlemi
- DrivePro Yaşam Döngüsü Hizmetleri
- Batarya Testinin Temelleri
- Enerji Yönetiminde Ölçümün Rolü: Verimliliğe Giden Yol
- HVAC Sistemlerinde Kullanılan EC Fan, Sürücü ve EC+ Fan Teknolojisi
- Su İşleme, Dağıtım ve Atık Su Yönetim Tesislerinde Sürücü Kullanımı
- Röle ve Trafo Merkezi Testlerinin Temelleri | Webinar
- Chint Elektrik Temel DIN Ray Ürünleri Tanıtımı
- Sigma Termik Manyetik Şalterler ile Elektrik Devrelerinde Koruma
- Elektrik Panoları ve Üretim Teknikleri
- Teknik Servis | Megger Türkiye
ANKET