Docker İmajını Dosya Olarak Kaydetmek

Docker ile çalışırken, kendi sunucumuzda veya bilgisayarımızda olan bir imajı kaydedip, başka bir yere dosya olarak gönderebilmek istediğimiz zamanlar oluyor. Mesela bazen internet bağlantısı olmayan ortamlarda kurulum yapmamız gerekebiliyor. Böyle durumlarda imajları docker pull veya benzer bir komutla çektikten sonra, dosya olarak kaydedip ilgili sunucuya aktararak, orda kullanmak isteyebiliyoruz.

Kendimiz imaj ürettiğimizde, sadece bizim bilgisayarımızda varolan bir imajı, o an internet bağlantımız olsa dahi upload edebileceğimiz uygun bir registry olmayabiliyor. Bunun sebebi bazen çalıştığımız yerlerin gizlilik/güvenlik politikaları, bazense internet hızımızın yeterli olmaması gibi çeşitli yerlere uzanabiliyor.


Docker imajlarını dosya olarak kaydedip, dosyayı ister flash disk gibi bir ortamda, istersek FTP veya NFS gibi bir sunucu üzerinden başka yerlerle paylaşabilme imkanımız var. Önceki paragraflarda bahsettiklerimiz dahil olmak üzere birçok durumda container imajlarını dosyaya kaydetme çözüm oluyor. Hatta bazı şirketler, kullanıcılarına doğrudan web siteler üzerinden bu dosyaları indirterek uygulamalarını bu şekilde dağıtmayı tercih ediyor.

Nasıl Yaparız?

Docker’ın geniş komut ve parametre kümesinde bahsedilen ihtiyaçları karşılayan alt komut save komutu. Bu komut, istenen imaj veya imajları bir tar arşivi olarak veriyor. Sonrasında istersek bir dosyaya, istersek stdout üzerinden başka bir uygulamaya gönderebiliyoruz.

Kullanım Örneği

Şimdi bir örnek üzerinden ilerleyelim. Elimizde kendimiz ürettiğimiz bir imaj olabilir, veya bu örnekteki gibi hemen hazır bir imajı çekip sonrasında dosyaya aktarabiliriz. Önce imajı çekelim:

docker pull guray/benkimim:0.2

Çektiğimiz imajı bir tar arşiv dosyası olarak, bulunduğumuz dizine kaydedelim:

docker save guray/benkimim:0.2 -o imaj.tar

Bu komut imajın boyutu ve disk hızı gibi birkaç etkene göre bir miktar zaman alabilir. Bittiğinde elimizdeki tar dosyasının boyutunu kontrol edebiliriz:

$ ls -lh imaj.tar 
-rw-------    1 root     root       55.9M Nov 28 00:07 imaj.tar

Çıktıya bakacak olursak yaklaşık 56MB’lik bir tar dosyası bulabiliriz. Bu dosya, bizim imajımızı içerecektir.

Sonuç

Oluşturduğumuz bu dosyayı, daha sonra aynı veya başka bir Docker içeren sunucuya yükleyebiliriz. Bunun için docker load komutu yardımımıza yetişiyor. Tar formatındaki Docker imaj dosyasının nasıl yüklenip çalıştıracağına buradan ulaşabilirsiniz.

Leave a comment