Docker Image Repository Kullanmadan Çevrimdışı Ortama Docker Image’ı Yüklemek

022721_1739_DockerImage1.png

Mevcuttaki Docker imajımızı bir yerden başka bir yere bazen kopyalama ihtiyacı duyarız. İnternet erişimimiz olmadığı, herhangi bir Docker Image Repository’si kullanmadan bu imajı nasıl kopyalabilirim diye düşündüğümüz zamanlar olmuştur. Bu noktada Docker’ın bizlere sağlamış olduğu komutlar mevcut. Bu komutlardan yararlanarak imajımızı arşivleyerek bir ortamdan başka bir ortama kolaylıkla aktarabiliriz. Bu yazıda değineceğimiz komutlar aşağıdaki gibi:

docker save [OPTIONS] IMAGE [IMAGE…]

docker load [OPTIONS]

Farzedelim ki internete çıkmayan bir sunucuda Redis ayağa kaldırmamız gerekiyor. Bunun için “docker pull redis” komutu ile çok kolay bir şekilde redis imajını çekip Container’ı ayağa kaldırabilirdik. Ama sunucunun internet erişimi olmadığı için başka çözümler bulmamız gerekiyor. İnternet erişimimizin olduğu bir sunucuda Redis imajını çekerek işlemimize başlayabiliriz.

docker pull redis

Resim-1

Localimizde mevcut olan imajları listeyelerek Redis imajının geldiğini de görelim.

docker image ls

Resim-2

Localimize almış olduğumuz Redis imajını arşivlemek için docker save komutunu kullanacağız. Bu komut ile imajımızı arşivleyerek istenilen bir ortama kopyalama işlemini gerçekleştirebilir olacağız. Bu komut ek olarak parametre de alıyor. – -output, -o parametresi çıktının STDOUT (Standart Output) yerine dosyaya yazılmasını sağlıyor. Aşağıdaki gibi iki komut da tamamen aynı işlemi yapmakta lakin ilk komut sadece Linux terminallerde başarılı olacaktır, Powershell’de bu parametreyi geçmezsek arşivleme işlemi başarılı olmayacaktır.

docker save <image_name> <archive_name.zip> à Linux

docker save -o <archive_name.zip> <image_name> à Linux & Windows

Bu örneğimizde ben -o parametresi vererek ilerleyeceğim. Ayrıca .zip uzantısı vermesekte arşivleme işlemi tamamen aynı şekilde gerçekleşiyor. Uzantının pek bir önemi yok lakin .zip, .tar gibi uzantılar verdiğimizde imajın katmanlarını WinRar ile açıp görüntüleyebiliriz.

Resim-3

İlgili komutumuzu çalıştırdıktan sonra artık Redis imajının redis.zip ismini verdiğimiz bir dosyada arşivlenmiş olduğunu gördük. Şimdi mevcuttaki imajımızı silelim ve bu arşivlemiş olduğumuz dosyadan yararlanarak docker pull komutunu kullanmadan imajı localimize çıkartalım.

Öncelikle Redis imajını silelim. Imajları listediğimizde localimizde artık redis imajının bulunmadığını da görelim.

Resim-4

İmaj arşivleme işlemi için kullandığımız docker save komutunun aksi işlemini docker load komutu aracığıyla yapacağız. Bu komut da arşivlenmiş dosyadan imajı elde etmemizi sağlar. Aynı şekilde – -input, -i parametreleri geçerek STDIN(Standart Input) yerine dosyadan okuma yapması için yönlendirebiliriz.

docker load < archive_name.zip à

Linux

docker load -i <archive_name.zip> à Linux & Windows

Resim-5

Arşivlenmiş dosyadan yararlanarak imajı başarılı bir şekilde localimize yüklediğimizi gördük.

Arşivlediğimiz bu imajları istediğimiz sunucuya kopyalabilir böylelikle internet bağımlılığı kalmadan bir bilgisayardan başka bir bilgisayara imajlarımızı aktarabiliriz.

Bu konuyla ilgili sorularınızı  alt kısımda bulunan yorumlar alanını kullanarak sorabilirsiniz.

Referanslar

www.mshowto.org

https://docs.docker.com

TAGs: Docker, PowerShell, Image, Image Tar Archive, Docker Image, Docker İmaj, docker save, docker load, Load an Image, Load an Image From Archive, Image Repository, Save Image, Offline Imaj Aktarma, Offline Imaj Yükleme

Yazı gezinmesi

Mobil sürümden çık