"Enter"a basıp içeriğe geçin

Docker klasörlerinizi yedekleyin

Docker logo resmi

Docker birimleri, kalıcı verileri kapsayıcılarınızdan ayrı depolamak için kullanılır. Bir birime kaydedilen verilere, kapsayıcılarınız durduktan sonra da erişilebilir durumda kalarak durum bilgisi olan iş yüklerini depolamanıza olanak tanır.

Hacimler kaplarda kalsa da bu, üretim uygulamaları için yeterli koruma değildir. Bir felaketten sonra geri yükleyebilmek için birimleri yedeklemelisiniz. Düzenli birim yedeklemeleri, Docker ana bilgisayarınız tehlikeye girerse veya veriler yanlışlıkla silinirse ortamınızı geri yüklemenize yardımcı olabilir.

Yedekleme boyutunu yönet

Docker, birimleri yedeklemek veya içeriklerini dışa aktarmak için yerleşik bir mekanizmaya sahip değildir. Birime erişmek ve verileri yedekleme hedefine kopyalamak için kendi çözümünüzü kurmanız gerekir.


Yedeklemek istediğiniz birimi bağlayacak geçici bir kapsayıcı oluşturmak genellikle en kolay yoldur. Ekle . lütfen --volumes-from a bayrak docker run Mevcut bir kapsayıcıdaki birimleri otomatik olarak yedekleme kapsayıcınıza bağlama komutu. Daha sonra aşağıdaki gibi araçları kullanabilirsiniz: tar E gzip Çalışma kitabınıza bir cilt içeriği arşivi eklemek için.

İşte bu tekniğin tam bir örneği:

# Create a container that stores data in the "mysql_data" volume
docker run -d \
    --name mysql \
    -v mysql_data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=mysql \
    mysql:8

# Start a temporary container to back up the "mysql_data" volume
docker run --rm \
    --volumes-from mysql
    -v $PWD:/backup-dir \
    ubuntu tar cvf /backup-dir/mysql-backup.tar /var/lib/mysql

bu --volumes-from Bayrak, geçici yedekleme kapsayıcısına erişim izni verildiği anlamına gelir. mysql konteyner boyutları. bu /var/lib/mysql Yedekleme kutusundaki dizin, sürücü tarafından kullanılan yol olduğu için birimin içeriğini gösterir. mysql Konteyner. Yolun belirtilmesi, klasörünüzün yedek olarak kullanabileceğiniz bir arşivini oluşturur. tarafından ayarlanan bağlama kancası nedeniyle çalışma kitabınızda ciltlenecektir. -v Bilim.

bu --rm Bayrak, komut tamamlandığında yedekleme kapsayıcısını siler. Bu, arşivi çalışma kitabınızdaki uzun süreli depolamaya aktarılmaya hazır bırakır. Yedeklemeleri otomatikleştirebilirsiniz. docker run bir cron işi olarak komut.


Yedeklemenizi geri yükleyin

Yedeklemenizi geri yüklemek için benzer bir yöntem kullanabilirsiniz. Mevcut bir birimin içeriğini değiştirdiğinizde, birimi içeren başka bir geçici kapsayıcı ve yedekleme arşivine bir yükleme bağlantısı oluşturursunuz. Arşivin içeriğini birim bağlama yoluna çıkarın.

$ docker run --rm \
    --volumes-from mysql
    -v $PWD:/backup-dir
    bash -c "cd /var/lib/mysql && tar xvf /backup-dir/mysql-backup.tar"

Konteynerler aktif olarak hacim kullanıyorsa bu riskli olabilir. Kullanımdaki dosyaların üzerine yazmak, hatalara ve beklenmeyen davranışlara neden olabilir. kullanabilirsiniz docker stop Kullanarak yeniden yükseltme yapmadan önce kapsayıcılarınızı duraklatma komutu docker start.

$ docker stop mysql

# Restore the backup
# ...

$ docker start mysql

Yeni bir ana bilgisayara geri yüklüyorsanız, kapsayıcınızı başlatmadan önce birimi oluşturun:

$ docker volume create new_volume

Ardından bu klasörü geçici kabınıza bağlayın:

docker run --rm \
    -v new_volume:/var/lib/mysql
    -v $PWD:/backup-dir \
    ubuntu tar cvf /backup-dir/mysql-backup.tar /var/lib/mysql

Uygulama kapsayıcısını aynı boyutta başlatmak, kurtardığınız dosyalara erişmenizi sağlar:

docker run -d \
    --name mysql \
    -v new_volume:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=mysql \
    mysql:8

Bu prosedürleri test ederek herhangi bir felaketle karşılaşmanız durumunda yedeklerinizin kullanılabilirliğini kontrol edebilirsiniz.

Klasörleri doğrudan yedekleyin

Yukarıdaki prosedür, Docker klasörlerini yedeklemek için önerilen yoldur. Bununla birlikte, bazı durumlarda, içeriği doğrudan sunucunuzun dosya sistemindeki birimlerin depolandığı yerden kopyalayarak daha iyi hizmet verilebilir.

Klasörlerinizin içeriğini genellikle şu adreste bulabilirsiniz: /var/lib/docker/volumes. Her klasör şu şekilde kendi alt klasörünü alır: /var/lib/docker/volumes/mysql. Bu üst düzey pistte bir _data Birimde depolanan tüm dosyaları içeren klasör.

Arşiv /var/lib/docker/volumes Bir dizin, sunucunuzdaki her şeyi hızlı bir şekilde yedeklemenin yararlı bir yolu olabilir. dosyaları kullanmalısın sudo Bu yoldaki her şey sahibine ait olsa da root.

Bu yedekleme yöntemi, kurulumlar arasında aktarılamadığından normal kullanım için önerilmez. Docker’ın toplu işletim sistemi, toplu verilerin ana bilgisayarınızın dosya sisteminde depolanması gerekmediği anlamına gelir; bu, bir ağ paylaşımında veya başka bir uzak konumda olabilir. Bu teknik, yalnızca belirli bir cihazda bakım yapmadan önce hızlı bir yedekleme istiyorsanız denenmelidir.


genel bakış

Docker klasörleri, uygulamanız için statik veriler içerdiklerinden dikkatle kullanılmalıdır. Düzenli yedeklemeler oluşturmak, ana bilgisayarınız tehlikeye girerse veya hatalı bir kapsayıcı işlemi yanlışlıkla dosyaları silerse sizi veri kaybından korur.

Docker kurulum klasörünü arşivleyerek yedeklemeler oluşturabilirsiniz ancak mümkün olduğunca bundan kaçınılmalıdır. Geçici yedekleme kapsayıcıları kullanışsız gelebilir, ancak kolayca betiklenebilirler ve tüm birim sürücüler için öngörülebilir sonuçlar sağlarlar.

Bir birim yedekleme arşivi oluşturduktan sonra, mümkün olan en kısa sürede harici depolamaya bağladığınızdan emin olun. Geldiği bilgisayarda depolanan bir yedekleme, erişimin kaybedilmesi veya bir donanım arızası meydana gelmesi durumunda yardımcı olmaz.

kaynak bağlantı

Diğer gönderilerimize göz at

[wpcin-random-posts]

İlk Yorumu Siz Yapın

Bir yanıt yazın

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