如何备份docker卷为postgres?

这是我的docker撰写文件

version: '2' services: postgres9: image: postgres:9.4 expose: - 5432 volumes: - data:/var/lib/postgresql/data volumes: data: {} 

我想备份data

在docker中有没有一个命令? 我使用我的本地和Linux为我的服务器的Mac

在Docker中,卷并不是什么特别的东西。 他们是简单的目录/文件,当您在撰写文件中使用volumes ,将会创build一个目录并在您运行该容器时将其安装到您的容器中。 你可以看到:

 docker inspect <container name/id> 

在输出中您将find关于卷的信息,您可以在主机操作系统上看到那里的目录

备份你的卷,你可以简单地压缩和存储目录使用焦油。 要做到这一点,你需要知道目录的path,你可以从主机操作系统挂载一个目录,如:

 version: '2' services: postgres9: image: postgres:9.4 expose: - 5432 volumes: - /var/lib/postgresql/data:/var/lib/postgresql/data 

你可以从主机操作系统备份/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和从backuptool容器上载/data的备份