Maison > Article > Opération et maintenance > Linux et Docker : Comment conserver et sauvegarder les données des conteneurs ?
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.
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
。这样,主机上的数据就会与容器中的数据进行同步,实现了数据的持久化。
对于容器中的数据,我们通常还需要进行定期的备份,以防止数据的丢失。在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
# 每天凌晨3点进行数据备份 0 3 * * * root rsync -avz --delete /path/to/source/dir /path/to/backup/dirDans 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.
/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. /etc/crontab
. Voici un exemple simple : 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!