hand on
This commit is contained in:
parent
2dc1d6f665
commit
5440f0a981
@ -2,21 +2,20 @@
|
|||||||
|
|
||||||
本教程将以备份 Grafana 的数据卷为例,手把手教你如何备份和还原 Docker 卷。
|
本教程将以备份 Grafana 的数据卷为例,手把手教你如何备份和还原 Docker 卷。
|
||||||
|
|
||||||
|
以下是 Grafana 的 docker-compose 配置参考:
|
||||||
|
|
||||||
``` title="docker-compose.yml"
|
``` title="docker-compose.yml"
|
||||||
grafana:
|
services:
|
||||||
|
grafana:
|
||||||
image: grafana/grafana-enterprise
|
image: grafana/grafana-enterprise
|
||||||
container_name: grafana
|
container_name: grafana
|
||||||
ports:
|
ports:
|
||||||
- 100.114.118.48:3000:3000
|
- 3000:3000
|
||||||
volumes:
|
volumes:
|
||||||
- grafana-storage:/var/lib/grafana
|
- 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
|
restart: unless-stopped
|
||||||
|
volumes:
|
||||||
|
grafana-storage:
|
||||||
```
|
```
|
||||||
|
|
||||||
## 第一步:确定准备备份的 Docker 卷
|
## 第一步:确定准备备份的 Docker 卷
|
||||||
@ -34,11 +33,12 @@ docker volume ls
|
|||||||
```
|
```
|
||||||
DRIVER VOLUME NAME
|
DRIVER VOLUME NAME
|
||||||
local 3-buyvm-lv_grafana-storage
|
local 3-buyvm-lv_grafana-storage
|
||||||
|
...
|
||||||
```
|
```
|
||||||
|
|
||||||
在本次演示中,`3-buyvm-lv_grafana-storage` 将是我们将要备份的卷。
|
在本次演示中,`3-buyvm-lv_grafana-storage` 将是我们将要备份的卷。
|
||||||
|
|
||||||
## 第二步:创建备份
|
## 第二步:创建 Docker 卷的备份
|
||||||
|
|
||||||
要创建 Docker 卷备份,可以使用 `docker run` 命令启动一个容器,挂载要备份的卷,并将备份数据写入压缩包。
|
要创建 Docker 卷备份,可以使用 `docker run` 命令启动一个容器,挂载要备份的卷,并将备份数据写入压缩包。
|
||||||
|
|
||||||
@ -50,8 +50,42 @@ busybox \
|
|||||||
tar -czvf /backup/<backup-filename>.tar.gz <target>
|
tar -czvf /backup/<backup-filename>.tar.gz <target>
|
||||||
```
|
```
|
||||||
|
|
||||||
下面是我们备份 `3-buyvm-lv_grafana-storage` 的示例命令:
|
在该命令中,用要备份的卷的名称替换 `<volume-name>`,用 docker 容器内的挂载点替换 `<target>`,用备份文件的名称替换 `<backup-filename>`。
|
||||||
|
|
||||||
|
依照上面的命令,我们备份 `3-buyvm-lv_grafana-storage` 的命令便要这样写:
|
||||||
|
|
||||||
```bash
|
```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
|
||||||
|
```
|
||||||
|
|
||||||
```
|
## 第三步:还原 Docker 卷
|
||||||
|
|
||||||
|
如果需要从备份中还原 Docker卷,我们可以使用 `docker run` 命令启动一个容器,挂载备份文件并将备份数据写入卷。
|
||||||
|
|
||||||
|
```bash
|
||||||
|
docker run --rm \
|
||||||
|
--mount source=<volume-name>,target=<target> \
|
||||||
|
-v $(pwd):/backup \
|
||||||
|
busybox \
|
||||||
|
tar -xzvf /backup/<backup-filename>.tar.gz -C /
|
||||||
|
```
|
||||||
|
|
||||||
|
在该命令中,用要备份的卷的名称替换 `<volume-name>`,用 docker 容器内的挂载点替换 `<target>`,用备份文件的名称替换 `<backup-filename>`。
|
||||||
|
|
||||||
|
依照上面的命令,我们还原 `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/)
|
Loading…
x
Reference in New Issue
Block a user