Bazen yedekleme vb. amaçlar için dosyaları bir Docker konteynerinden ana sisteme aktarmanız gerekebilir . Bu, Linux'ta docker cp aracıyla kolayca gerçekleştirilebilir . İşte nasıl kullanılacağı.
xr:d:DAFds8YL9ik:2,j:43601822907,t:23032003
Docker CP kullanarak bir Docker konteynerinden ana bilgisayara dosya aktarma
Docker kapsayıcınızın dışındaki dosyaları ana sisteme aktarmanız gerekirse, bunu yapmanın en hızlı ve kolay yolu Docker CP aracını kullanmaktır. Başlamak için sunucunuza SSH üzerinden veya bir terminal arayüzüne sahip fiziksel bir monitör aracılığıyla giriş yapın.
Oturum açtıktan sonra, Kök hesabına erişin. Bunu iki şekilde yapabilirsiniz. Ya su komutuyla ya da sudo -s komutuyla.
su
Veya
sudo -s
Giriş yaptıktan sonra docker ps komutunu çalıştırın. Bu komutu çalıştırmak, çalışan tüm kapları gösterecektir. Dosyaları aktarmayı planladığınız kapsayıcının kimliğini arayın. Ardından, kapsayıcıda oturum açmak için aşağıdaki komutu kullanın.
Not: $id'yi kapsayıcı kimliğinizle değiştirin.
docker exec -it $id /bin/bash
Yukarıdaki docker exec komutunu kullanarak Docker kapsayıcınızda oturum açtığınıza göre , kapta gezinmeniz ve Docker CP kullanarak aktarmak istediğiniz dosyaları sıkıştırmanız gerekir.
Bu örnekte, dizindeki “test” klasörünü kullanacağız /root/
. İhtiyaçlarınıza uyacak şekilde bu komutu değiştirmeniz gerekecek.
tar -czvf arşivim.tar.gz /root/test/
Dosyaları sıkıştırdıktan sonra kaptan çıkın. Aşağıdaki çıkış komutunu kullanarak Docker kapsayıcınızdaki terminal arayüzünden çıkabilirsiniz .
çıkış
Son olarak, dosyalarınızı kaptan sisteme aktarın.
docker cp CONTAINER_ID:/path/to/archive.tar.gz /host/system/folder/
Dosyaları sıkıştırmadan aktarma
Dosyaları önce sıkıştırmadan aktarmanız önerilmese de (güvenlik nedeniyle) yapabilirsiniz. Bazı dosyaları içeren bir dizini basitçe aktarmak isterseniz, bunu nasıl yapacağınız aşağıda açıklanmıştır.
Öncelikle container'a giriş yaparak klasörün yolunu belirleyiniz. Aşağıdaki komutlar ile container'a giriş yapabilirsiniz.
su
docker exec -it $id /bin/bash
Aktarmak istediğiniz klasörün yolunu belirledikten sonra kaptan çıkın. Ardından, aşağıdaki docker cp komutunu çalıştırın.
docker cp CONTAINER_ID:/yol/to/your/klasör/ /ana bilgisayar/sistem/klasör/
Docker CP kullanarak ana bilgisayardan bir Docker kapsayıcısına dosya aktarma
Dosyaları Docker kapsayıcısı yoluyla ana bilgisayara aktarmanın yanı sıra, dosyaları ana bilgisayardan kaba geri aktarmak da mümkündür. Buna göre, docker kapsayıcınıza aktarmak istediğiniz dosyaların konumunu bulun.
Aktarmak istediğiniz dosyaları bulduğunuzda, bunları sıkıştırmak için aşağıdaki komutu kullanın. Klasörün sıkıştırılması aktarımı kolaylaştırır.
tar -czvf arşivim.tar.gz /yol/to/senin/klasör/
Klasörünüzü bir Tar.GZ arşivine sıkıştırdıktan sonra, dosyaları aktarmak istediğiniz kabın kimliğini almanız gerekir. İlk olarak, su veya sudo -s kullanarak root'ta oturum açın .
su
Veya
sudo -s
Root hesabına giriş yaptıktan sonra docker ps komutunu çalıştırın. Bu komut, çalışan tüm konteynerler hakkında bilgi gösterecektir. Daha sonra bu bilgileri alabilir ve sıkıştırılmış arşivinizi aktarmak için docker cp komutunu kullanabilirsiniz.
liman işçisi ps
docker cp /path/to/my-archive.tar.gz CONTAINER_ID:/path/to/destination/
Dosyaları sıkıştırmadan aktarma
Hiçbir şeyi sıkıştırmadan bir kaba aktarmak isterseniz, bunu nasıl yapacağınız aşağıda açıklanmıştır. İlk olarak, su veya sudo -s kullanarak root'ta oturum açın . Kök olarak oturum açtıktan sonra, aktarmak istediğiniz klasör yolunu bulun.
Klasör yolunu bulduktan sonra, dosyaları aktarmak istediğiniz kabın kapsayıcı kimliğini almak için docker ps komutunu kullanın. Ardından, dosyaları sisteminize kopyalamak için aşağıdaki docker cp komutunu kullanın.
docker cp /yol/to/my/file/klasör/ CONTAINER_ID:/path/to/hedef/
Rsync ile ana bilgisayardan bir Docker kapsayıcısından dosya aktarma
Docker cp komutunu kullanmak, ana bilgisayarlara ve ana bilgisayarlardan dosya aktarmak için yeterli olmalıdır. Ancak, dosyaları bir kapsayıcıdan ana bilgisayara Rsync yapmak da mümkündür. Unutmayın, ana makinede etkinleştirilmiş ve çalışan bir SSH sunucunuz olmalıdır.
Başlamak için terminal aracılığıyla ana Linux sunucunuzda kök olarak oturum açın. su veya sudo -s kullanarak kök hesaba giriş yapabilirsiniz . Root hesabına giriş yaptıktan sonra docker ps komutunu çalıştırın.
su
Veya
sudo -s
liman işçisi ps
Docker konteyner kimliğini bulun ve aşağıdaki komutu kullanarak oturum açın. Ardından, kabın paket yöneticisini kullanarak Rsync aracını kurun. "$id"yi kapsayıcı kimliğiyle değiştirdiğinizden emin olun.
docker exec -it $id /bin/bash
Rsync'i kabın paket yöneticisini kullanarak yükledikten sonra, dosyaları kaptan ana bilgisayara eşitlemek için aşağıdaki Rsync komutunu kullanın.
rsync -avz -e ssh /yol/to/local/files/ user@remote:/path/to/remote/files/