Docker Tam Olarak Nedir?

Merhaba,

Ne yazık ki ben de tam bilmiyorum. Şu ana kadar hiç ihtiyaç duymadım. #REZ

Ama biz data structures dersi için kullanıyoruz bu docker’ı (windows kullanan arkadaşlarım kullanıyor, ben PC ye kurulu olan linuxdan devamkee)

Şimdi sana şöyle açıklayabilirim.

Hoca ödev atıyor, ödev süresi bittikten sonra bizim kodlarınızı test ediyor olmuş mu olmamış mı diye. Ama ortada bir sorun var.

Ben red hat kullanıyor, bir başkası Windows, kimisi fedora, hoca ise Ubuntu kullanıyorsa nolacak? Kodlar eşit şartlarda değerlendirilemiyor.

Hah işte burada docker devreye giriyor. Hoca diyor ki(ifadeler parodidir, ürün yerleştirme yapılmıştır :see_no_evil:):

Şimdi siz bu docker i kuracaksınız ve benim gönderdiğim dosyadan containeri çalıştıracaksiniz. Ondan sonra da kendi kodlarınızı orada test edebilirsiniz. İster kodunu windowsda test et, ister fedorada, bana ne, ama ben ödevleri bu containerde test edeceğim. Eğer senin fedoranda kod doğru çalışıp benim container imde hata veriyorsa napimmm banane, kodunu gönderdiğim container’de test edeydin.

Şimdi buradaki olay şu:

Container, burada şunu sağlıyor:
Eğer öğrenci sayısı 28 ise özdeş 28 tane container(Hoca da dahil 29). Şimdi elimizde 29 tane özdeş sistem var.(özdeş kelimesine dikkat çekiyorum. eşit değil, özdeş, birbirinin klonu yani)

Daha da anlaşılır olması için bir docker kurup bir container çalıştırmanı tavsiye ediyorum.

Aşağıda anlatıyorum.

  1. dockerfile adlı bir dosya oluşturup aşağıdakileri içine kopyala.

dockerfile

FROM ubuntu:latest

RUN apt update
RUN apt install openssh-server sudo -y
RUN useradd -rm -d /home/ubuntu -s /bin/bash -g root -G sudo -u 1000 test 
RUN usermod -aG sudo test
RUN service ssh start
RUN  echo 'test:test' | chpasswd

RUN apt update
RUN apt install build-essential -y
RUN apt install gdb -y

RUN apt update
RUN apt install git -y

RUN apt update
RUN apt install python3 -y
RUN apt install python3-pip -y
RUN pip install calico

EXPOSE 22
CMD ["/usr/sbin/sshd","-D"]
docker build -t ovatman/blg223 .
docker run -p 2222:22 -v /Users/cihat/Source/blg223esummer/assignment8/:/home/ubuntu/homeworks --name blg223e --hostname blg223e -d ovatman/blg223

Şimdi buradaki

/Users/cihat/Source/blg223esummer/assignment8/

Dizini, (kullanıcının mac kullandığı varsayılıyor) senin bilgisayarındaki maç dizini

/home/ubuntu/homeworks

dizini ise birazdan kullanacağımız conatinerde oluşturacağımız dizin. Birinci dizini kendi PC ne göre değiştirirsin. Ama ikinci dizine dokunma.

  1. şimdi ssh ile containerimize bağlanacağız.
ssh test@localhost -p 2222

Şifre test

  1. şimdi Ubuntudasin. Hayırlı olsun.
    Şimdi bulunduğun terminale
ls /home/ubuntu/homeworks

Yaz. Göreceğin şey,

/Users/cihat/Source/blg223esummer/assignment8/

deki dosyalar olacak.

  1. ubuntuyla işin bittiyse
    ssh dan exit yazarak çık ve ardından
docker ps --all

Yazarak kendi containerin container id sini bul. Ondan sonra da

docker stop 3bd24dfeac

ve ardından

docker rm 3bd24dfeac

komutlarını çalıştır.

Şimdi biz ne yaptık, ssh ile ubuntunun shell’ini kullandık. Buradan istersen kendi cpp kodlarını falan test edebilirsin.

Basit olarak kendi deneyimimi anlattım. Bilenler varsa bizi aydınlatırsa çok güzel olur. Ama ayriyeten bir iki şey eklemek istiyorum.

Şimdi atıyorum ben bir site yaptım diyelim. Bu site bende çalışıyor ama ekip arkadaşımın PC sinde çalışmadı diyelim. Eğer sen bu siteyi containerde test edersen kurulum için gerekli işlemleri docker halleder. Hem ekip arkadaşın, hem de sen tabiri caizse aynı PC yi kullanmış kadar olursun.

UYARI: yanlış anlatmış olabilirim, ben de kullananların deneyimlerini çok merak ediyorum. Lütfen bu insanoğlunu mazur görün

EDIT: Yaklaşık 614 mb falan indiriyor ona göre

4 Beğeni