我使用docker postgres:9.4图像 . 我需要知道如何备份和恢复仅容量容器 .
Created Volume container:
docker run -v /var/lib/postgresql/data --name dbdata postgres:9.4 /bin/true
Using the volume
docker run --name=postgres --volumes-from=dbdata -d -p 6432:5432 postgres:9.4
Backup Volume container
docker run --volumes-from dbdata -v $(pwd):/backup postgres:9.4 tar cvf /backup/backup.tar /var/lib/postgresql/data
Restore volume in new container
docker run --name=dbdata-new --volumes-from dbdata -v $(pwd):/backup ubuntu:14.04 /bin/sh -c 'cd /var/lib/postgresql/data && tar xvf /backup/backup.tar'
Use in the new volume in creating new postgres container:
docker run --name=postgres-new --volumes-from=dbdata-new -d -p 7532:5432 postgres:9.4
Issue: 运行新容器时,我在日志中收到以下错误 .
initdb:目录“/ var / lib / postgresql / data”存在但不为空如果要创建新的数据库系统,请删除或清空目录“/ var / lib / postgresql / data”或使用参数运行initdb除了“/ var / lib / postgresql / data”之外
不确定我做错了什么 . 有人可以指出我犯错误的地方 .
2 回答
在非常基本的数据(一个记录一个表一个新的数据库)的步骤之后,无法轻松地重现问题:
当我启动
postgres-new
时,我在日志中没有例外,数据似乎在那里:data-new --volumes-from dbdata -v $(pwd):/ backup ubuntu:14.04 / bin / sh -c' cd /var/lib/postgresql/data && tar xvf /backup/backup.tar '
粗体文字是问题所在 . 通过解压文件夹/ var / lib / postgresql / data中的备份,tar命令在上面的文件夹中创建了/ var / lib / postgresql / data .
谢谢你对MyKola的所有帮助 .