Docker İlk Uygulamamız

671

Merhaba arkadaşlar,

Bu yazımızda sizinle beraber basit bir docker uygulaması yapacağız ve temel docker komutlarını işleyeceğiz. Önceki yazımda docker dünyasına basit bir giriş yapmıştım. Şimdi üstüne az daha katarak basit bir demo ayağa kaldıralım. Ben bu demo için kendi hazırlamış olduğum bir spring boot projesini kullandım. Yani elimdeki jar dosyasını dockerize edip öyle ayağa kaldıracağım. Bu işlemi şimdi adım adım gösterelim.

Öncelikle bir Dockerfile tanımlamamız gerekiyor. Önceden belirttiğim gibi Dockerfile bir tanımlayıcı dosya gibi düşünün. İçinde oluşturacağımız container içinde ne barındıracağını tanımlıyoruz. Daha sonra da bu dosyayı build edip bir image elde ediyoruz.

Yukarıda en basit hali ile bir Dockerfile tanımı görüyorsunuz. Konumuzun bu kısmında isterseniz Dockerfile komutları hakkında biraz bilgi verelim.

FROM: Projemizi kuracağımız image’ı(base image) çağırır. Her projenin bir base image’ı vardır. Bu bir java projesi olduğu için bize JVM yeterlidir. O yüzden sadece java-8’i çağırdık.

ADD: Oluşturacağımız container içine kendi localimizden dosya atabilmemizi sağlar. Komut [src, dest] mantığıyla kullanılır.

EXPOSE: Container kendi başına bir host gibi davranacak ve aynı zamanda bir port üzerinden çalışacaktır. Burada projemizde tanımladığımız 2222 portunu tanımlıyoruz.

CMD: Container üzerinde çalışacak varsayılan komut belirtilir. Her Dockerfile’da sadece 1 adet bulunur.

RUN: Build sırasında çalıştırılacak komutları belirtmek için kullanılır.

ENV: Container içindeki sistem parametresi tanımlarını yapmak için

kullanılır.

ENTRYPOINT: Container üzerinde yapısal bir komut girdisi sağlar. Yani bir bin dosyasının ya da kendi scriptimizin komutunu belirleyip daha sonra container ayakta iken ayrı bir terminalden çalıştırabilmemizi sağlar.

WORKDIR: Container üzerinde çalışılacak dizini belirtmek için kullanılır. Eğer yukarıdaki örnekte WORKDIR /demo dedikten sonra ADD komutu çalıştırsaydık jar dosyamızın dizini /demo/app.jar olacaktı.

Dockerfile oluşturulduktan terminal üzerinde

şeklinde Dockerfile build ediyoruz. Bu işlem sonrası elimizde bir docker image var. Hala bir container oluşturmuş değiliz. Öncelikle elimizde hangi image’lar var kontrol edelim. Bunun için docker images komutunu kullanıyoruz.

Gördüğümüz gibi base image ve kendi movie image’imiz görülüyor. Java image’ı bizim kendi Dockerfile dosyamızda belirttiğimiz image. Üstteki ise bizim örnek olarak oluşturduğumuz image. Örneğimizin boyutu 670 MB olmasına rağmen görüldüğü gibi 643 MB’si projemiz için gerekli olan kütüphanelere harcanmış. Bizim projemiz sadece 27 MB ki spring kütüphanelerinden kaynaklanıyordur. Şimdi container oluşturalım. Bunun için ekrana

komutunu giriyoruz. Komutu inceleyecek olursak -p ile localimizdeki 8080 portunu containerdaki 2222 komutuna eşliyoruz. En sonda da image adını yazıyoruz. Komutu çalıştırdığımızda jar dosyamız ayağa kalkacaktır. Sonrasında tarayıcıda localhost:8080 girdikten sonra ekranımız karşımıza gelecektir.

Evet arkadaşlar ilk docker containerımızı oluşturmuş olduk. Bundan sonraki yazılarda görüşmek dileğiyle…

Yorum yaz

Email adresiniz yayınlanmayacaktır.