Docker Export & Import ile Container Taşıma

elifcan cakmak
Kod Gemisi
Published in
2 min readMay 23, 2018

Docker ile çalışan uygulamalarınızı bir sunucudan başka bir sunucuya taşımak istediğiniz zaman kullanabileceğiniz iki tane yöntem vardır. Bunlardan ilki save ikincisi ise export methodudur.

Save methodu, o an çalışmayan bir image’i bir dosyaya kaydeder. Export methodu ise, çalışmakta veya durdurulmuş bir container instance’ını bir dosyaya kaydeder. Bu yazımızda export methodu ile çalışan bir container’ı başka bir sunucuya taşıma işleminin nasıl yapıldığını bulabilirsiniz.

Öncelikle çalışan docker instance’larını listeliyoruz.

docker ps

Ardından export etmek istediğimiz container’i aşağıdaki komutla bir gzip dosyası haline getiriyoruz. Biz örneğimizde locust uygulamasını kullandık.

docker export container_name | gzip > container_name.gz## örnek bir komutdocker export locust | gzip > locust.gz

Bir sonraki adım bu dosyayı diğer bir sunucuya taşımak. Bunu scp komutu ile yapabilirsiniz.

scp container_name.gz username@server_ip:/home/username

Dosyayı taşıdıktan sonra önce import komutunu çalıştırıyoruz.

zcat container_name.gz | docker import — name container_name.gz## örnek bir komutzcat locust.gz | docker import — name locust.gz

Yapacağımız en son işlem ise container’ı ayağa kaldırmak olacak. Bunu da aşağıdakine benzer bir komutla yapıyoruz:

docker run -i -t NAME /bin/bash

Burada normal Docker run komutu çalıştırıyoruz. Eklemek istediğiniz parametreler varsa burada ekleyebilirsiniz. Dikkat edilmesi gereken konu ise çalıştıracağımız komut. Yukarıda /bin/bash yazan yere bu uygulamayı çalıştırmak için kullandığınız (Dockerfile içerisindeki) komutu yazıyoruz. Bizim örneğimizde aşağıdaki gibi oluyor. Port açmak istediğimiz için -p parametresini, arka planda çalıştırmak istediğimiz için -d parametresini kullanıyoruz. Locust uygulaması ayağa kalkarken test etmek istediğiniz host’u da vermeniz gerektiği için bu parametreyi de ekliyoruz.

## örnek bir komutdocker run --name locust -p 8089:8089 -it -d locust /usr/bin/locust -f /locust/locustfile.py --host=host:ip

Ardından docker ps komutu ile çalışan container’larımızı kontrol edebilir ve ayakta olup olmadığına bakabiliriz. Bununla birlikte docker logs -f container_name komutu ile de uygulamanın loglarını canlı takip edebiliriz.

Bütün docker komutları ile birlikte export ve import komutları ile ilgili daha detaylı bilgiye linkten ulaşabilirsiniz.

--

--