Maison  >  Article  >  Opération et maintenance  >  Linux et Docker : Comment conserver et sauvegarder les données des conteneurs ?

Linux et Docker : Comment conserver et sauvegarder les données des conteneurs ?

WBOY
WBOYoriginal
2023-07-28 23:06:21936parcourir

Linux et Docker : Comment effectuer la persistance et la sauvegarde des données du conteneur ?

Avec le développement rapide du cloud computing et de la technologie des conteneurs, Docker est devenue aujourd'hui l'une des plates-formes de conteneurisation les plus populaires et les plus utilisées. Dans le processus d'utilisation de Docker pour le développement et le déploiement d'applications, la persistance et la sauvegarde des données sont une tâche très importante. Cet article explique comment effectuer la persistance et la sauvegarde des données du conteneur sous Linux et Docker, et donne des exemples de code correspondants.

  1. Persistance des données

Dans Docker, les données du conteneur sont stockées par défaut à l'intérieur de l'image, ce qui signifie que lorsque le conteneur est supprimé, les données seront également perdues. Afin d'assurer la persistance des données, des volumes de données peuvent être utilisés pour associer les données contenues dans le conteneur à l'hôte.

Ce qui suit est un exemple de Dockerfile utilisant un volume de données :

FROM ubuntu:latest
VOLUME /data
COPY myapp /data

Dans cet exemple, nous définissons d'abord un volume de données /data, puis ajoutons le myapp à l'intérieur du conteneur Le fichier est copié dans le volume de données. De cette façon, lorsque nous exécutons ce conteneur, nous pouvons accéder aux données du conteneur en montant un répertoire sur l'hôte dans /data dans le conteneur. /data,然后将容器内部的myapp文件复制到数据卷中。这样,当我们运行这个容器时,可以通过挂载主机上的一个目录到容器中的/data来访问容器中的数据。

使用以下命令可以运行这个容器,并进行数据持久化:

$ docker run -v /path/to/host/dir:/data myimage

在上述命令中,/path/to/host/dir是主机上的一个目录,它将被挂载到容器中的/data。这样,主机上的数据就会与容器中的数据进行同步,实现了数据的持久化。

  1. 数据备份

对于容器中的数据,我们通常还需要进行定期的备份,以防止数据的丢失。在Linux中,有多种方法可以对数据进行备份,如使用cp命令、rsync命令和tar命令等。下面是一个使用rsync命令进行备份的示例:

$ rsync -avz --delete /path/to/source/dir /path/to/backup/dir

在这个示例中,我们使用rsync命令将/path/to/source/dir中的数据同步到/path/to/backup/dir中。其中,-avz选项表示进行归档模式、保留文件权限和递归备份,--delete选项表示删除备份目录中不存在的源目录文件。

为了实现自动化的数据备份,我们可以将上述命令添加到Cron任务中。Cron是Linux中一种用于定期执行任务的服务,可以通过编辑/etc/crontab

Utilisez la commande suivante pour exécuter ce conteneur et effectuer la persistance des données :

# 每天凌晨3点进行数据备份
0 3 * * * root rsync -avz --delete /path/to/source/dir /path/to/backup/dir

Dans la commande ci-dessus, /path/to/host/dir est un répertoire sur l'hôte, qui sera monté /data chargé dans le conteneur. De cette manière, les données sur l'hôte seront synchronisées avec les données du conteneur, assurant ainsi la persistance des données.

    Sauvegarde des données

      Pour les données contenues dans le conteneur, nous devons généralement effectuer des sauvegardes régulières pour éviter toute perte de données. Sous Linux, il existe de nombreuses façons de sauvegarder des données, par exemple en utilisant la commande cp, la commande rsync et la commande tar. Vous trouverez ci-dessous un exemple d'utilisation de la commande rsync pour la sauvegarde :
    1. rrreee
    2. Dans cet exemple, nous utilisons la commande rsync pour synchroniser les données de /path/to/source/dir vers /path /vers/sauvegarde/rép. Parmi elles, l'option -avz signifie exécuter le mode archive, conserver les autorisations de fichiers et la sauvegarde récursive, et l'option --delete signifie supprimer les fichiers du répertoire source qui n'existent pas dans le répertoire de sauvegarde.
    3. Afin de réaliser une sauvegarde automatisée des données, nous pouvons ajouter la commande ci-dessus à la tâche Cron. Cron est un service sous Linux utilisé pour effectuer des tâches régulièrement. Vous pouvez ajouter des déclencheurs planifiés pour les tâches de sauvegarde en modifiant le fichier /etc/crontab. Voici un exemple simple :
    rrreee🎜Dans l'exemple ci-dessus, nous avons défini la tâche de sauvegarde des données pour qu'elle soit exécutée une fois par jour à 3 heures du matin. 🎜🎜En résumé, en utilisant des volumes de données et des méthodes de sauvegarde régulières, nous pouvons assurer la persistance des données et la sauvegarde des conteneurs sous Linux et Docker. Cette approche peut garantir la fiabilité et la continuité des données d’application et améliorer la sécurité et la disponibilité des données. 🎜🎜Références : 🎜🎜🎜Docker Documentations https://docs.docker.com/storage/volumes/🎜🎜Linux Handbook https://linuxhandbook.com/understand-crontab-syntax/🎜🎜

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn