Docker Image Repository Kullanmadan Çevrimdışı Ortama Docker Image’ı Yüklemek
  1. Anasayfa
  2. Container

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

0

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

Bu İçeriğe Tepkin Ne Oldu?
  • 12
    harika_
    Harika!!
  • 1
    be_enmedim
    Beğenmedim
  • 0
    _ok_iyi
    Çok iyi
  • 0
    sevdim_
    Sevdim!
  • 0
    bilemedim_
    Bilemedim!
  • 2
    olmad_
    Olmadı!
  • 0
    k_zd_m_
    Kızdım!

Gökçe Demir. 1996 İstanbul doğumluyum. Gebze Teknik Üniversitesi Bilgisayar Mühendisliği bölümü mezunuyum. Stajlarımı Logo Siber Güvenlik ve Ağ Teknolojileri A.Ş. ve Intertech'in Network Güvenlik Operasyonları bölümünde tamamladım. Üniversitenin 3. sınıfından itibaren Intertech'te Yazılım Süreçleri bölümünde Junior DevOps Mühendisi olarak 2 yıl çalıştım. 2019 yılında mezun oldum. Aynı bölümde Devops Mühendisi olarak tam zamanlı çalışmaya başladım ve bu pozisyonda çalışmaya devam ediyorum. Aynı zamanda Türkiye'nin Mühendis Kızları projesinde gönüllü olarak üniversite öğrencilerine mentorlük yapmaktayım.

Yazarın Profili

Bültenimize Katılın

Tıklayın, üyemiz olun ve yeni güncellemelerden haberdar olan ilk kişi siz olun.

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