这是我的docker撰写文件
version: '2'
services:
postgres9:
image: postgres:9.4
expose:
- 5432
volumes:
- data:/var/lib/postgresql/data
volumes:
data: {}
我想备份
data
。docker 有命令吗?我在本地使用mac并在服务器上使用linux
最佳答案
在Docker的情况下,卷没有什么特别的。它们是简单的目录/文件,当您在撰写文件中使用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
您可以通过将其挂载到另一个容器或直接从主机OS上从主机OS备份
/var/lib/postgresql/data
。或有另一种方法,您可以以只读模式将相同的卷挂载到另一个容器中并备份目录:
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
的备份
关于postgresql - 如何备份PostgreSQL的docker卷?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45207785/