Docker ARG ve Commit komutları

Selamlar arkadaşlar bu yazımda sizlere Docker container üzerinde ARG komutu yardımıyla oluşturduğumuz ve içerisinde işlemler yaptığımız image ve container’ımızdan, Commit komutu ile yeni bir image oluşturacağız. Ancak ilk olarak bu komutlarımızın ne işe yaradığını anlatacağım.

ARG komutu nedir?

ARG komutu ile Dockerfile içerisinde build-time sırasında kullanılmak üzere yapılandırma zamanı değişkenleri tanımlamak için kullanılır. Image oluşturma sırasında değerler atanarak yapılandırılır. Yani bu sayede dinamik olarak değişkenlere atanan değerleri image oluşturma sırasında değiştirebilir ve her yeni image ile bu değişkende değiştirilen içeriği containerlarınızda kullanabilirsiniz.

Aşağıda örnekleri veriyor olacağım ancak son bir konuya daha değinmem gerek. Docker Build komutunu çalıştırdığınız sırada değişkenin değerini değiştirebilmeniz için –build-arg parametresini eklemeli ve değiştireceğiniz değeri yazmalısınız.

Docker Commit nedir?

Commit ise mevcutta olan bir container’ınızın o anki durumunu alarak yeni bir image oluşturmanızı sağlar. Bu container içerisinde yapılan herhangi bir değişikliği commit ile yeni image’a aktarmış oluruz ve daha sonra bu image ile yeni containerlar yaratabiliriz.

Şimdi bu bilgiler ile aşağıdaki örneği uygulamaya geçelim.

İlk olarak Dockerfile dosyamızı oluşturuyoruz.

FROM ubuntu:20.04
ARG username
RUN useradd -m ${username}
RUN echo "Kullanıcı: ${Username} oluşturuldu."

Yukarıdaki komutlar ile Dockerfile’ımızı dolduruyoruz. Base olarak Ubuntu kullanıyoruz ARG komutumuz ile atayacağımız değişken ismi ile container’ımızda kullanıcı oluşturacağız. Bu örnekte basit bir ARG kullanımı yaptım ancak aşağıdaki gibi bir örneği Dockerfile’ınız içerisinde de kullanabilirsiniz.

ADD https://www.python.org/ftp/python/${VERSION}/Pyhton-${VERSION}.tgz .

bu şekilde python programının istediğiniz versiyonunu image oluşturma sırasında container’ınızın içerisine indirebilirsiniz.

Build komutları yardımı ile Image’ımızı oluştururken ARG için –build-arg parametresi ile sistemdostu değişkenimizi belirledik. Ve arg-imageimiz adında bir Image oluşturduk. Biraz karmaşık olmuş isimler ama idare edin arkadaşlar. 🙂

> docker run -it arg-imageimiz /bin/bash

Komutumuz yardımı ile Containerımızı ayağa kaldırdık. Burada -it ve /bin/bash sayesinde ise direk olarak container’ımızın terminal alanına düştük. Daha sonra touch ile hello.txt dosyasını build işlemi sırasında girmiş olduğumuz kullanıcının klasöründe (sistemdostu) oluşturduk. Bu sayede ARG komutumuzuda başarılı bir şekilde kullanmış olduk.

Docker ps -a komutu ile containerlarımı listeledim ve run ederken isim vermediğimden dolayı frosty_tharp adında containerımızın çalışmaya başladığını ve up durumda olduğunu gördük. Bu alandan Container_ID bilgimizi de almış olduk. İçerisinde Ubuntu çalıştığından dolayı container terminalinde Ctrl + C tuşlarına basarak çıkış sağladım. Farklı bir kurulum yaparsanız ise Container’dan Exit olmadan çıkmak isterseniz Ctlr + P tuşlarına basılı tutmalı ve ardından Q tuşuna basmalısınız.

> docker commit <container_id> arg commitimiz

Commit komudumuz sayesinde oluşturduğumuz container’ımızın id’si ile arg-commitimiz adında yeni bir image oluşturduk ve bunu daha sonrasında run ederek çalıştırdık. Bir önceki container içerisinde oluşturmuş olduğumuz dosyaların burada da olduğunu göreceksiniz.

Bu şekilde hem ARG komudunu hemde Commit ile yeni bir image’ın nasıl oluşturulacağını görmüş olduk. Umarım yararlı olmuştur.

Bana destek vermek istersenix Youtube üzerinde bulunan SistemDostu kanalıma abone olabilir ya da reklamlarıma bir tık atabilirsiniz. Ayrıca soru ve görüşlerinizi yorumlar alanından iletebileceğinizi unutmayın. Kolaylıklar dilerim.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir