diff --git a/docs/tech/Backup-and-Restore-of-Docker-Volumes-A-Step-by-Step-Guide.md b/docs/tech/Backup-and-Restore-of-Docker-Volumes-A-Step-by-Step-Guide.md index b76438f..683dd86 100644 --- a/docs/tech/Backup-and-Restore-of-Docker-Volumes-A-Step-by-Step-Guide.md +++ b/docs/tech/Backup-and-Restore-of-Docker-Volumes-A-Step-by-Step-Guide.md @@ -2,21 +2,20 @@ 本教程将以备份 Grafana 的数据卷为例,手把手教你如何备份和还原 Docker 卷。 +以下是 Grafana 的 docker-compose 配置参考: + ``` title="docker-compose.yml" -grafana: +services: + grafana: image: grafana/grafana-enterprise container_name: grafana ports: - - 100.114.118.48:3000:3000 + - 3000:3000 volumes: - grafana-storage:/var/lib/grafana - environment: - GF_SERVER_DOMAIN: "3-buyvm-lv.tail184fc.ts.net" - networks: - - basic_network - labels: - - "com.centurylinklabs.watchtower.enable=true" restart: unless-stopped +volumes: + grafana-storage: ``` ## 第一步:确定准备备份的 Docker 卷 @@ -34,11 +33,12 @@ docker volume ls ``` DRIVER VOLUME NAME local 3-buyvm-lv_grafana-storage +... ``` 在本次演示中,`3-buyvm-lv_grafana-storage` 将是我们将要备份的卷。 -## 第二步:创建备份 +## 第二步:创建 Docker 卷的备份 要创建 Docker 卷备份,可以使用 `docker run` 命令启动一个容器,挂载要备份的卷,并将备份数据写入压缩包。 @@ -50,8 +50,42 @@ busybox \ tar -czvf /backup/.tar.gz ``` -下面是我们备份 `3-buyvm-lv_grafana-storage` 的示例命令: +在该命令中,用要备份的卷的名称替换 ``,用 docker 容器内的挂载点替换 ``,用备份文件的名称替换 ``。 + +依照上面的命令,我们备份 `3-buyvm-lv_grafana-storage` 的命令便要这样写: ```bash +docker run --rm \ +--mount source=3-buyvm-lv_grafana-storage,target=/var/lib/grafana \ +-v /root/backup:/backup \ +busybox \ +tar -czvf /backup/3-buyvm-lv_grafana-storage.tar.gz /var/lib/grafana +``` -``` \ No newline at end of file +## 第三步:还原 Docker 卷 + +如果需要从备份中还原 Docker卷,我们可以使用 `docker run` 命令启动一个容器,挂载备份文件并将备份数据写入卷。 + +```bash +docker run --rm \ +--mount source=,target= \ +-v $(pwd):/backup \ +busybox \ +tar -xzvf /backup/.tar.gz -C / +``` + +在该命令中,用要备份的卷的名称替换 ``,用 docker 容器内的挂载点替换 ``,用备份文件的名称替换 ``。 + +依照上面的命令,我们还原 `3-buyvm-lv_grafana-storage` 的命令便要这样写: + +```bash +docker run --rm \ +--mount source=3-buyvm-lv_grafana-storage,target=/var/lib/grafana \ +-v /root/backup:/backup \ +busybox \ +tar -xzvf /backup/3-buyvm-lv_grafana-storage.tar.gz -C / +``` + +## 参考 + +[Backup and Restore of Docker Volumes: A Step-by-Step Guide](https://osmosys.co/blog/backup-and-restore-of-docker-volumes-a-step-by-step-guide/) \ No newline at end of file