NOT: Makaleyi Docker’ın henüz piyasada peynir ekmek gibi yenilmediği, ve benim de henüz yolun başında zamanlarda yazmıştım 🙂 . Hatta o zamanlarda Docker Registery kavramı daha varmıydı, yokmuydu bilmiyorum.
Yapılan işlemin hala çalışabilir olduğundan eminim. Ancak, bu işlemi artık böyle yapmak doğru değil. Lütfen, başka bir yol deneyin 🙂
Docker, makineler üzerinde portatiflik ve çalışma bakımından inanılmaz derecede kolaylıklar sağlıyor. Ayrıca, sisteminizde ayarladığınız bir çalışır containeri’i başka bir yere aktarmak da bir o kadar basit.
Ben bu yazıda size indirdiğiniz çalışan Docker imajında yaptığınız değişiklikleri ve Docker imajını nasıl yedekleriz konusundan bahsedeceğim.
1 |
docker run -i -t ubuntu /bin/bash -c "echo 'deneme çıktı' > /root/SaveFile" |
komutu ile docker imajin indirip bash ile echo komutundan output alip SaveFile dosyasina kaydettik
ps -a komutu ile hangisinin bizim imajımız olduğuna bakalım
1 |
96bfeb10290b ubuntu "/bin/bash -c 'echo '" 4 seconds ago Exited (0) 4 seconds ago distracted_mcnulty |
Bu komut bizim makinemizde hangi komutların çalıştığını ve containerimizin takma adını(distracted_mcnulty) gösteriyor
Şimdi imajımızı commitleyelim
1 |
docker commit 96bfeb10290b kaydedilmisimaj |
docker images dediğimizde
1 2 |
kaydedilmisimaj latest cf9fa1e6cbe2 10 minutes ago 187.9 MB ubuntu latest 6cc0fc2a5ee3 8 days ago 187.9 MB |
çıktısını alıyorsanız imajınınız kaydedilmiş demektir
commit işlerine biraz daha yakından bakalım derseniz
docker history kaydedilmisimaj:latest
1 2 3 4 5 6 |
IMAGE CREATED CREATED BY SIZE COMMENT cf9fa1e6cbe2 12 minutes ago /bin/bash -c echo 'deneme kopyalama' > /root/ 17 B 6cc0fc2a5ee3 8 days ago /bin/sh -c #(nop) CMD ["/bin/bash"] 0 B f80999a1f330 8 days ago /bin/sh -c sed -i 's/^#\s*\(deb.*universe\)$/ 1.895 kB 2ef91804894a 8 days ago /bin/sh -c echo '#!/bin/sh' > /usr/sbin/polic 194.5 kB 92ec6d044cb3 8 days ago /bin/sh -c #(nop) ADD file:7ce20ce3daa6af21db 187.7 MB |
Gördüğünüz gibi, bizim kaydettiğimiz imajımız indirdiğimiz Ubuntu(6cc0fc2a5ee3) üzerine yapılmış bir commit olarak çalışıyor.(git benzeri)
Şimdi esas işimize geri dönüp oluşturduğumuz container’i kaydedelim
1 |
docker save -o /root/kaydedilmisimaj.tar kaydedilmisimaj |
Dosyalarımızı kontrol edelim
1 |
ls /root/ |
1 |
Desktop Documents Downloads kaydedilmisimaj.tar Music Pictures Public Templates Videos VirtualBox VMs |
Bundan sonra yapacağımız işlemleri başka bir docker yüklenmiş makinede yapacağız
İmajı başka bir bilgisayara taşıdıktan sonra orada da eski ayarladığımız container’i kullanmak için imajı bulunan yeni sisteme yükleyelim.
1 |
docker load -i kaydedilmisimaj.tar |
docker images çıktısında kaydedilmisimaj‘ı gördükten sonra makineyi çalıştırıp sistemin en başında yazdığımız Text dosyasının çıktısını aşağıda olan komut ile alabiliyorsak başarı ile yapmışız demektir.
1 |
docker run -it kaydedilmisimaj /bin/bash -c "cat /root/SaveFile" |