17 Ocak 2014

Ubuntu 13.04 Üzerinde Docker Kurulumu


Docker LogoDaha önceki yazımda Docker'dan kısaca bahsetmiştim. Her bir uygulama için yeni bir sanal sunucu kurup bu sunucunun getirdiği yüklere katlanmak yerine tek bir işletim sistemi (Linux) üzerinde her bir uygulama için milisaniyeler içinde açılabilen hazır işletim sistemleri ve uygulama ortamları içeren konteynerlar kullanmak özellikle yazılım geliştiren firmalar için test , geliştirme ve sürekli entegrasyon (CI) ortamı oluşturmak için oldukça ideal görünen bir yöntem.
Docker, şu anda host işletim sistemi olarak sadece RHEL, Fedora, Arch, Gentoo gibi bir kaç Linux dağıtımı tarafından destekleniyor. Yaptığım testlerde gördüğüm kadarıyla Docker'ı kurup sorunsuz çalıştırabilmek için en uygun dağıtım Ubuntu 13.04 (ufak tefek sorunlar olsa da 13.10 da buna ekleyebiliriz). LXC deki bir bug nedeniyle ancak 3.8 kernel ve üzerinde sorunsuz çalıştığını söyleyebilirim.

Bu arada Docker pek çok büyük web girişiminde production da kullanılmasına rağmen daha 1.0 sürümüne ulaşmamış bir proje.

Docker sitesinde de yer alan Ubuntu 13.04 üzerinde kurulum adımları aşağıdaki gibidir:

Bağımlılıklar

Opsiyonel AUFS dosya sistemi desteği
AUFS yüklemek için aşağıdaki komutları çalıştırın:
sudo apt-get update
sudo apt-get install linux-image-extra-`uname -r`

Kurulum

Öncelikle Docker repo anahtarını yerel anahtarlarınız arasına ekleyin

sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 36A1D7869245C8950F966E92D8576A8BA88D21E9
Docker reposunu, apt kaynak listenize ekleyin ve lxc-docker paketini yükleyin
sudo sh -c "echo deb http://get.docker.io/ubuntu docker main\
> /etc/apt/sources.list.d/docker.list"
sudo apt-get update
sudo apt-get install lxc-docker
Yüklemeyi doğrulamak için Ubuntu imajını indirin ve bir konteyner başlatın
sudo docker run -i -t ubuntu /bin/bash




15 Ocak 2014

Sanallaştırmaya Alternatif Bir Çözüm: Docker



Docker LogoSon günlerde sanallaştırmaya uygulama olarak servis (PaaS) çözümleri tarafından iyi bir alternatif olarak ortaya çıkan Docker üzerinde çalışıyorum. 
Docker, LXC ( Linux Containers) konteynerlarını ve imajlarını kolay yönetebilmek için geliştirilmiş oldukça yetenekli bir araç. Var olan bir imajdan hızlı bir şekilde konteyner başlatabiliyorsunuz , çalışan bir konteyner ‘a görevler ekleyebiliyorsunuz.
Docker temelde deniz taşımacılığında kullanılan konteynerları model alıyor. Konteynerlar keşfedilene kadar her ürün farklı ve verimsiz bir biçimde taşınırken konteynerlar sonrası deniz taşımacılığı standandardize olmuş ve neredeyse tüm ürünler konteyner hesabıyla taşınıyor.
Docker ve konteynerlarını kullanmakla kazandığınız en önemli şey; uygulamalarınız çalışması için temiz ve taşınabilir bir ortama hızlıca sahip olabilmeniz. Bu sayede uygulamanızı çalıştırırken oluşabilecek bağımlılık sorunları, eksik paketler ve diğer uygulama sorunlarından kurtuluyor ve bir yerden başka bir yere kolayca taşıyabiliyorsunuz.
Örneğin Python + Redis ile geliştirdiğiniz bir uygulamanız var ve bunu ortamıyla birlikte servis edebileceksiniz ve bir kaç komut ile ortamınız hazır olacak.
Docker ile ilgili ayrıntı bilgi için tıklayınız