Skip to content

Kenan YAMAN

Dışı tekniker, içi yazılımcı

Menu
Menu

Docker nedir, Docker ile neler yapılır ?

Posted on 14 Haziran 202120 Haziran 2021 by Kenan

Herkese merhaba, sitemin temasını değiştirdim ve bir kaç bileşen eklemesi yaptım. Bri şeyi fark ettim, bir kaç yıldır blog yazıyorum fakat bloğumda arşiv kısmına baktığımda bir kaç ay hariç geri kalan aylarda neredeyse sadece bir adet yazı paylaşmışım. Düşünüyorum; ayda bir yazıdan fazla blog yazmış olmam gerekiyor. Ama gerçekte öyle değilmiş. Neyse, bu durum bloğun üzerinde daha fazla yoğunlaşmam gerektiğini bana güzel bir şekilde hatırlattı. Artık haftada en az bir yazı paylaşmayı planlıyorum. Hadi o zaman konumuza dönelim.

İçerik gizle
1 Docker nedir ?
1.1 Docker yapısı
2 Docker ile neler yapılır ?
2.1 Bunu paylaş:
2.2 İlgili

Docker nedir ?

Aslında docker yeni çıkan bir teknoloji değil. Yıllardır var olan bir sistem. Ve uygulama geliştiricilere ya da biraz daha uygulama altyapılarını bilen kullanıcılar için uygulamaları her platformda sorunsuz bir şekilde çalıştırmalarını sağlayan bir yapıya sahip. [baglanti_yatay]

Peki nedir bu docker ? Docker en sade haliyle bir sanal makine olarak tanımlayabiliriz. Sanal makine üzerine kuracağınız herhangi bir uygulama, işletim sisteminizden bağımsız olarak çalışır ve uygulama bağımlıklarını içinde barındırır. Böylece işletim sisteminizden izole bir şekilde istenidiğiniz her türlü uygulamayı kurabilir ve çalıştırabilirsiniz. İlerleyen bölümlerde daha detaylı anlatımını yapacağım.

Linux işletim sistemi üzerinden örnekle konuyu biraz daha açalım.

Şimdi python ile bir uygulama geliştireceğimizi düşünelim. Bu uygulamayı geliştirirken yapmak istediğimiz işleme göre üçüncü parti modüller kullanmamız gerekebilir. Bunlar birer bağımlılıktır. Bu bağımlılıklar sistemimizde olmak zorunda. Eğer bu bağımlılıkları işletim sistemine yüklemezsek uygulama geliştiremeyiz. Bağımlılıkları sağladık ve uygulumamızı tamamladık. Harika bir şekilde çalışıyor, tam istediğimiz gibi. Şimdi bu uygulamayı bir arkadaşımız ile paylaşmak istedik ve uygulama kodlarını arkadaşımıza gönderdik, arkadaşımızda linux işletim sistemine sahip olduğunu varsayıyoruz. Arkadaşımız bu kodları aldı ve uygulamamızın çalışması için gerekli olan bağımlılıkları yüklemeden uygulamayı çalıştırmaya kalktı. Böyle bir durumda yazdığımız uygulama çalışmayacaktır. Arkadaşımızda bağımlılıkları yüklemek zorunda olacaktır. Arkadaşımız uygulamanın çalışması için gerekli olan bağımlılıkları gördü ve bunları yüklemeden uygulamanın çalışmayacağını anladı, böylece yazdığımız uygulamanın bağımlılıklarını yüklemek için internette araştırma yapmaya başladı ve gerekli bağımlılıkları bularak yükledi, bunun için bir süre araştırma yapması ve vakit harcaması gerekti. Şimdi uygulamayı tekrar çalıştırmak istediğinde farklı bir hata ile karşılaştı ve uygulamayı çalıştıramadı. Bunun üzerine internette biraz daha araştırma yaptı ve sorunun kullandığı işletim sistemi üzerinde, çalıştırmak istediği uygulamanın bağımlılıklarıyla olan problemi gördü. Ve uygulamayı çalıştırmaktan vazgeçti.[goruntu_kare]
[goruntu_kare_amp]

Böyle bir senaryoda kendimizi arkadaşımızın yeirne koyabiliriz. Bu gerçekten insanı çileden çıkartan bir durum. Bunun gibi bir çok senaryo ile karşılaşılabilir.

Kendimden bir örnek vermek istiyorum. Python ile telegram üzerinden mesaj gönderen bir uygulama yazdım. Uygulamanın amacı upwork üzerinden filitrelediğim işleri almak ve bu işleri veritabanına kayıt etmek. Sonrasında belirlediğim aralıkta bana telegram üzerinden göndermek. Bu uygulama sorunsuz bir şekilde bilgisayarımda çalıştı fakar bu uygulamanın işlevini yerine getirmesi için sürekli aktif olarak çalışması gerekiyor. Bunun için bir sunucuya bu uygulumayı göndermem ve orada çalıştırmam gerekiyor. Bunun için pythonanywhere üzerinde bir hesap açarak uygulamayı orada çalıştırmaya başladım. Uygulamanın bağımlılıklarını yüklemek istediğimde bir çok hata ile karşılaştım ve bunu çözmek için gerçekten forum sitelerinde ciddi süreler harcadım. [yazi_ici_goruntu]

Bir örnekle daha devam edelim; bu yazdıklarım dışında uygulamanızı farklı platformlar üzerinde test etmek isteyebilirsiniz. Performans olarak ya da daha farklı amaçlar için. Böyle bir durumda test etmek istediğiniz işletim sistemini bilgisayarınıza kurmanız ve ardında uygulamanızı yükleyerek test etme işlemini gerçekleştirmeniz gerekir. Bu da haddinden fazla zaman ve enerji harcamanıza sebep olur.

İşte bu uzun uzun yazdıklarımın ve aklıma gelmeyen daha bir çok sebepten ötürü docker kullanarak uygulamalarınızı hızla derleyebilirsiniz, test edebilirsiniz ve dağıtabilirsiniz.

 Docker yapısı

Dockerı kısaca sanal makine olarak adlandırmıştık. Şimdi konuyu biraz daha açalım ve nasıl bir yapı olduğuna bakalım.

Docker; yazılımları gerekli olan tüm işlevleri ile birlikte “container” adı verilen standartlaştırılmış birimler halinde paketler. Bu paketleri istediğiniz bir zamanda, istediğiniz uygulamarı içine atarak oluşturabilirsiniz. Oluşturmuş olduğunuz bu paketere imaj adı verilir.

Başıma gelen olayı şimdi docker ile incelersek eğer; ben uygulamamı docker ile imaj haline getirmiş olsaydım, yazmış olduğum tüm bağımlılıklar bu imajın içine olacaktı ve ben bu imajı istediğim herhangi bir sunucuya göndererek uygulamamı, göndermiş olduğum sunucunun işletim sisteminden bağımsız olarak çalıştıracaktım. Böylece işletim sistemi farklılıklarından kaynaklanan sorunlar için vakit harcamam gerekmeyecekti.

Docker oluşturulan bu imajları çalıştırmayı sağlar. Bu imajları istediğiniz gibi oluşturabilirsiniz. Örnek vermek gerekirse; ben python ile bir uygulama geliştirdim ve sadee python kullanmak istiyorum. Böyle bir durumda içinde python yorumlayıcısı ve ihtiyacımız olan programın kendisi ve bunun yanında uygulama için için gerekli olan bağımlılıklar olması yeterli. Başka hergangi bir uygulamaya ihtiyacımız yok. Tüm bu değişkenleri “Docker file” adı verilen bir metin dosyası içine yazarak imajı oluştururuz ve kullanmaya başlarız. Her uygulama için bir docker imajı oluşturulabilir. Herhangi bir sınır bulunmuyor. Bunun yanında başka insanların oluşturmuş olduğu docker imajlarını indirerek bunları da kullanabiliriz. Bunun için oluşturulmuş bir web siteside mevcut. Bu web sitesinde ihtiyacımıza göre bir başkası tarafından oluşturulmuş docker imajını indirerek kullanabiliriz. Ya da kendi oluşturduğumuz imajı bu siteye göndererek başkalarının kullanmasını sağlayabiliriz. [partner] [space]

Oluşturulan bu docker imajlarını çalıştırabilmemiz için sistemimizde docker kurulu olması gerekiyor. Docker kurulumu için kendi sitesi üzerindeki yöngergeleri takip edebilirsiniz.

Docker ile neler yapılır ?

Bunu da örneklerle açıklamaya çalışacağım. Hiç programlama bilginiz olmadığını varsayıyorum. Bir uygulama kodu buldunuz ve bunu denemek istiyorsunuz fakat uygulamayı denemek için bir çok bağımlılık istiyor. İşletim sisteminize bilmediğiniz uygulama ve bağımlılıkları kurmak istemiyorsunuz. Bunun için kullanmak istediğiniz uygulamayı docker ile imaj haline getirererk işletim sisteminizden bağımsız bir halde çalışmasını ve vereceği sonucu görmesini sağlayabilirsiniz.

Bir başka örnek; bir uygulama buldunuz ve sadece linux işletim sistemi içinde çalışıyor. Siz windows kullanıyorsunuz. Bu uygulamayı windows üzerinde çalıştırmak için uygulama üzerinde değişiklik yapmanız gerekiyor. Bu konuda herhangi bir fikriniz yok. Böyle bir durumda bir docker imajı oluşturararak içerine linux ve istediğiniz uygulamayı atarak bir imaj oluşturursunuz ve bu imajı windows üzerinde çalıştırırsanız eğer sorunsuz bir şekilde kullanabilirsiniz.

Son verdiğim örneği kullanmıştım. Fiverr üzerinden bir müşteri ile konuştum ve bir uygulama yapmamı istemişti, uygulamayı tamamladım ve çalışan halini bir video çekerek gösterdim. Beğendi ve uygulamayı göndermemi istedi. Uygulamayı gönderdim. Uygulamanın kendi bilgisayarında bir hata verdiğini söyledi. Ben linux kullanıyorum kendisi windows üzerinde bu uygulamayı kullanmak istiyordu. Yukarda verdiğim örneklerdeki gibi işletim sisteminden kaynaklı olarak hatalar ortaya çıktı. Sonrasında docker kullanarak yazdığım uygulamayı imaj haline getirip gönderdim. Müşterinin tek yapması gereken imajı indirmek ve çalıştırmak. İmajın içinde uygulamanın ototmatik olarak çalışması için gerekli ayarları yapmıştım. Müşteri sadece imajı indiirp çalıştırdı ve istediği uygulamayı sorunsuz bir şekilde kullandı.[baglanti_kare][goruntu_kare][yazi_ici_goruntu][space]


Aslında docker öyle bir blog yazısı ile anlatılacak bir konu değil. Docker için imaj nasıl oluşturulur, oluşturulan imajın içinde ne gibi işlemler yapılır, imaj oluşturmak için kullanılan “Docker file” nasıl hazırlanır gibi bir sürü konu mevcut. Ben sadece bu konuyu hiç bilmeyenler için örnekler vererek basit hale indirgemek istedim. Umarım hiç bilmeyenler için aydınlatıcı olmuştur. Bir sonraki yazımda görüşmek dileğiyle…

Artık her hafta pazartesi günü bir blog yazısı yayınlamayı düşünüyorum, bu da ilk yazım olsun

[goruntu_yatay]
[goruntu_yatay_amp]

Bunu paylaş:

  • Twitter
  • Facebook

İlgili

Bir Cevap Yazın Cevabı iptal et

Kategoriler

  • Django
  • Donanım
  • Genel
  • İngilizce
  • Konsol
  • Linux
  • Python
  • Tek Atımlık Bilgi
  • Uncategorized
  • Yazılım

Bloga e-posta ile abone ol

Diğer 4 aboneye katılın

  • EnglishEnglish

Django 3.0 ile blog geliştirme

Kişisel vpn kurulumu

kişisel vpn kurulumu

RSS Rss

  • Samsung np s3511 laptop fan temizliği, termal macun değişimi ve parça değişimi (RAM, HDD,Cd room,CPU ) 12 Ekim 2021
    Herkese merhaba, uzun zamandır bir laptop söküp bakım yapmamıştım. Eski bir arkadaşım laptopuında ısınma ve kapanma sorunları olduğunu söyledi. Bir hafta sonu misafirliğe giderek laptopa güzel bir temizlik yaptık. Temizlik yaparken yaptığım işlemleri resim çekerek görselleştirdim. Ben temizlik için laptopu söktüm fakat sadece temizlik yapmak dışında bu yazınında başlığında gördüğünüz gibi parça değişimi işlemleri içinde...
  • Linux işletim sisteminin yanına windows işletim sistemi nasıl kurulur ? [Dual boot] 28 Haziran 2021
    Herkese merhaba, bugün ki konumuz dual boot, bir başka değişle; bilgisayarınızda yüklü olan işletim sisteminin yanına bir başka işletim sistemi kurmak. Uzun yıllar Windows kullanmış bir birey olarak, yaklaşık 5-6 yıldır Linux tabanlı işletim sistemleri kullanıyorum. Uygulama geliştiricelerin kullanırken daha rahat hissetiği ve işletim sistemi üzerinde tam kontrole sahip olduğu bir işletim sistemi. Bunun yanı...
  • Docker nedir, Docker ile neler yapılır ? 14 Haziran 2021
    Herkese merhaba, sitemin temasını değiştirdim ve bir kaç bileşen eklemesi yaptım. Bri şeyi fark ettim, bir kaç yıldır blog yazıyorum fakat bloğumda arşiv kısmına baktığımda bir kaç ay hariç geri kalan aylarda neredeyse sadece bir adet yazı paylaşmışım. Düşünüyorum; ayda bir yazıdan fazla blog yazmış olmam gerekiyor. Ama gerçekte öyle değilmiş. Neyse, bu durum bloğun...
  • Linux uyku modları ve sorunları 22 Mayıs 2021
    Herkese merhaba, uzun zamandır blog yazamıyorum. İş değiştirme olsun yaşadığım sorunlar olsun bir türlü vakit ayırıp içerik hazırlayamadım. Kendi bilgisayarım üzerinde yaşadığım bir sorunu nasıl çözdüğümü yazarak başlamak istiyorum. Öncelikle hikayenin başına dönelim. Önceki yazılarımı okuyanlar bilir, askerden geldikten sonra yaptığım ilk iş bilgisayarıma format atmak oldu. Herşeye sıfırdan başladım. Buraya kadar bir problem yok...
  • WordPress, web sitenizde kritik bir hata oluştu! 3 Nisan 2021
    Herkese merhaba, uzun süredir içerik üretemedim ve fazla vakit ayıramadım buralara, yeterince vakit bulamadım işin açıkcası. Bulduğum ilk fırsatta bir iki yazı yazmak istedim. İlk yazım wordpress kullanan her kullanıcının başına gelebilecek türden bir hata. Bir gün web sitenize girmek istediniz ve karşınıza böyle bir ekran geldi. [goruntu_kare][goruntu_kare_amp] Siz en son bıraktığınızda siteniz güzel ve...
  • İnternette Kişisel Güvenlik 24 Ocak 2021
    Geçtiğimiz günlerde WhatsApp’ın güncellediği kişisel veri ilkesiyle ülkemizde büyük ses getird. Bununla birlikte telefonumuzda ya da bilgisayarımızda kullandığımız uygulamaların ne tür verileri sakladığını ve bu verileri ne amaçla kullandığını bilmek kişisel olarak güvenliğimizi artırmak için araştırmamız gereken konular arasına girdi. İnternet üzerinde yaptığımız her türlü araştırma ve web site ziyareti kayıt altına alınıyor bu bir...
  • Nasıl pasaport alınır ? detaylı anlatım 2021 5 Aralık 2020
    Dünyanın başına gelmeyen olayın kalmadığı 2020 yılının son ayındayız. Hastalıklar, doğal afetler, ölümler, patlamalar, çatlamalar envai çeşit sıkıntıyla yüzleştik, umarım 2021 yılı daha hurulu ve mutlu geçer tüm dünya ve bizim için. 2020 yılının son ayına girdiğimiz şu günlerde uzun süredir aklımda olan bir eylemi gerçekleştirdim ve pasaport aldım. Pasaport alırken yapılacak işlemleri ve pasaport...
  • Pythonanywhere üzerinde selenium kullanımı 5 Kasım 2020
    Python üzerinde veri kazıma yapmak isterseniz eğer muhakkak ismini duyup araştırmışsınızdır selenium modülünü. Selenium modülü ile kullanıcı taklit edilecek web sitesi üzerinde testler oluşturabilir ya da veri kazıma işlemleri yapabilirsiniz. Peki bu işlemleri herhangi bir ekrana sahip olmayan uzak sunucu üzerinde yapmak istersek nasıl gerçekleştireceğiz ? Hadi başlayalım. [baglanti_kare] [baglanti_kare][space] Python selenium modülü nedir ?...
  • Polylang eklentisi nedir ? WordPress sitesine çoklu dil ekleme nasıl yapılır ? 29 Ekim 2020
    Herkese merhaba, bir blog siteniz varsa ve sürekli yazılar yayınlayıp paylaşıyorsanız eğer bir süre sonra bu yazıları farklı diller içinde paylaşmak isteyebilirsiniz. Farklı dillerde yayın yaparak daha fazla kitelelere ulaşabilir ve Google adsense ya da farklı reklam gösterimlerini kullanarak daha fazla gelir elde edebilirsniz. Peki wordpress alt yapısı ile oluşturulmuş bir sitede çoklu dil eklemek...
  • HTTP Metodları nelerdir ? 26 Ekim 2020
    Bugün ki yazımda, gün içinde sıklıkla kullandığımız fakat arkaplanına pek dikkat etmediğimiz web site isteklerine bakacağız. Bilgisayar başına geçtiğimizde gerek iş için olsun gerekse bir araştırma için olsun bir çok web sitesini ziyaret ediyoruz, bu ziyaretlerimiz sırasında site ile iletişim kurmamız gereken durumlarda meydana geliyor. Peki bu iletişimin nasıl olduğunu hiç merak ettiniz mi ?...

Arşivler

  • Ekim 2021 (1)
  • Haziran 2021 (2)
  • Mayıs 2021 (1)
  • Nisan 2021 (1)
  • Ocak 2021 (1)
  • Aralık 2020 (1)
  • Kasım 2020 (1)
  • Ekim 2020 (4)
  • Eylül 2020 (1)
  • Mart 2020 (1)
  • Şubat 2020 (4)
  • Ocak 2020 (9)
  • Aralık 2019 (4)
  • Kasım 2019 (3)
  • Ekim 2019 (2)
  • Eylül 2019 (2)
  • Temmuz 2019 (2)
  • Nisan 2019 (1)
  • Aralık 2018 (2)
  • Kasım 2018 (2)
  • Ekim 2018 (1)
  • Eylül 2018 (1)
  • Ağustos 2018 (4)
  • Temmuz 2017 (2)

Etiketler

bios boot ayarları boot boot yapma django djangoda shell django türkçeye çevirme ftp bağlantı ingilizce kalıplar ingilizce nasıl pratik yapılır ingilizce pratik yapmak ingilizce zamanlar ingilizce öğreniyorum konsol dan ftp bağlanma konsoldan hız testi nasıl yapılır laptop fan temizliği linux internet hız testi linux pip kurulumu pip kullanım python modül kaldırma işlemi python modül yükleme python nasıl kurulur Python nedir python ortamı python pip kurulumu python sanal çalışma ortamı python speedtest cli rufus rufus ile boot yapma sanal çalışma ortamı sanal çalışma ortamı ve paket yükleme speedtest-cli speedtest.net speedtest cli kullanımı speedtest terminal ssh ile ftp bağlantı suspend to disk suspend to ram terminal üzerinden hız testi türkçe django virtual environment what is wordpress windows pip kurulum wordpress wordpress nedir çalışma ortamı

Blog İstatistikleri

  • 22.921 tıklama

Blog İstatistikleri

  • 22.921 Tıklama

DMCA.com Protection Status

© 2022 Kenan YAMAN | Powered by Minimalist Blog WordPress Theme
Go to mobile version