Hazel Kavili

Accio data!

github twitter linkedin email rss
Docker ve R
Mar 25, 2018
3 minutes read

Evde sistem yöneticisi bir kız kardeş olunca, bazı terimler duyup “Aa evet bu çok kullanılıyor. Hmm pekiyi ben bunu nasıl kullanırım acaba?” diye hem kendinize hem ona sormaya başlıyorsunuz. Eh, yan yana gelip çalışınca da bu süreci ve bilgiyi paylaşmayı çok istedik. Cansu Kavılı’ya şimdiden çok teşekkürler!

Docker nedir?

Aşağıda gördüğünüz sırtında konteynerler olan mavi balina, hayatınızı kolaylaştıracak bir teknoloji. Örneğin kendi bilgisayarınızda bir uygulama yazarsınız ve bunu bir arkadaşınız kendi bilgisayarına alınca, bir sunucuya yerleştirince çalışmaz ve “ama benim makinamda çalışıyordu!” dersiniz ya! İşte o problemi ortadan kaldırıyor. Nasıl mı?

Docker’ı, kodunuzla birlikte kodunuzun çalışması için gereken binaryleri, kütüphaneleri, tüm bağımlılıkları sistemden bağımsız hale getirip paketlenmiş hali olarak düşünebilirsiniz.

Docker konusuna çalışırken karşınıza çıkacak 3 temel konsept var: 1- Docker image: Konteynerlerın yapıtaşı diyebiliriz. Uygulamanızı çalıştıracak konteynerı oluşturmanız için temel alacağınız hazır şablonlardır. 2- Docker hub: Docker image’ların saklandığı kütüphane. Bu linkten ulaşabilirsiniz. 3- Dockerfile: Uygulamanızı konteyner içerisine yerleştirip, size özel bir docker image’ı oluşturmanıza yardımcı olacak argümanları içeren dosya. Birleşik yazıldığına dikkat edelim!

Docker’ı bilgisayarınıza indirmek için bu siteye gidebilirsiniz. Biz stable channel yazan sürümü kurduk. Buradan sonrası Docker komutları.

R Studio’yu Konteyner İçerisinde Çalıştırmak

Bilgisayarınıza R Studio kurmak yerine içerisinde hazır R Studio kurulu olan bir konteyner indirmekle başlayalım. Yine bu linkte hazır olan R Studio image’nın detaylarını ve nasıl çalıştırmanız gerektiğini görebilirsiniz.

Tek yapacağımız Terminal’i açıp aşağıdaki komutla konteynerı çalıştırmak. Bu komut, konteynerın bilgisayarınızda olup olmadığını kontrol ediyor, eğer yoksa docker hub’dan indiriyor ve daha sonra çalıştırıyor:

docker run -d -p 8787:8787 rocker/rstudio

İndirdiğim konteynarı görmek için kullanacağım komut: docker images

İndirdiğimiz konteynerın ismi rocker/rstudio

İndirme bittikten sonra R Studio konteynerimizin çalıştığını görmek için: docker ps

Çalışan konteynerımızın ID’si: fb499066208d. Bunu özellikle yazmamızın sebebi daha sonra işimize yarayacak olması :)

Şimdi tarayıcımıza şunu yazalım ve konteynerın içersinde çalışan R Studio’ya bağlanalım: http://localhost:8787

konteynerlaştırılmış R Studio

konteynerlaştırılmış R Studio

Şimdi bunu normal bir R Studio olarak kullanabilirsiniz. Örneğin bir data frame (veri çerçevesi) oluşturabiliriz:

Pekiyi şu anda oluşturduğumuz data frame ile işimizin bitmediğini düşünürsek, konteynerımızı kapattığımızda ne olacak? Dikkat etmemiz gereken en önemli noktalardan biri konteynerler kapandığında, image üzerinden açılacağı için, ekstra bir işlem yapmadığnızda, ilk haliyle açılacaktır. Yani yaptığınız bütün işlemler kaybolacaktır. O halde konteynerımızın şu anki halini yeni bir isim vererek kaydedebilirsiniz. Biz rstudio_v2 yazdık:

docker commit -m "data frame olusturuldu" fb499066208d rstudio_v2

Kaldığımız yerden devam etmek için ise, yeni image’ımızı çalıştırıp, aynı şekilde bağlanarak çalışmamıza devam edelim:

docker run -d -p 8787:8787 rstudio_v2

Gelecek Yazı

Günümüzün en çok konuşulan konularından olan reproducible research için harika bir ortam sunan Docker’a bir giriş yaptık. Bir sonraki yazıda dockerfile ile hazırladığınız analizleri arkadaşlarınızın, öğrencilerinizin kendi bilgisayarlarında daha rahat nasıl çalıştırabileceklerini paylaşacağız!


Back to posts


comments powered by Disqus