这是我的docker撰写文件
version: '2'
services:
postgres9:
image: postgres:9.4
expose:
- 5432
volumes:
- data:/var/lib/postgresql/data
volumes:
data: {}
我想备份data
。
在码头工具中是否有命令?我使用mac作为我的本地和linux作为我的服务器
答案 0 :(得分:1)
对于Docker而言,卷不是特别的。它们是简单的目录/文件,当您在compose文件中使用volumes
时,docker将创建一个目录,并在运行容器时将其挂载到容器内。你可以通过以下方式看到:
docker inspect <container name/id>
在输出中,您将找到有关卷的信息,您可以在主机操作系统上看到该目录
要备份卷,您只需使用tar压缩和存储目录即可。要做到这一点,您需要知道目录的路径,您可以从主机操作系统安装目录,如:
version: '2'
services:
postgres9:
image: postgres:9.4
expose:
- 5432
volumes:
- /var/lib/postgresql/data:/var/lib/postgresql/data
你可以通过挂载另一个容器或直接从主机操作系统来备份主机操作系统/var/lib/postgresql/data
或者还有另外一种方法,你可以在readonly模式下在另一个容器中挂载相同的卷并备份目录:
version: '2'
services:
postgres9:
image: postgres:9.4
expose:
- 5432
volumes:
- data:/var/lib/postgresql/data
backuptool:
image: busybox:latest
volumes:
- data:/data:ro
volumes:
data: {}
然后,您可以tar并从/data
容器
backuptool
的备份