如何备份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
的备份