2016-02-29 150 views
0

我有一个数据仅供PostgreSQL的容器迁移数据

docker create -v /var/lib/postgresql/data --name bevdata mdillon/postgis /bin/true

我有一个正在运行的PostGIS容器

docker run --name bevaddress -e POSTGRES_USER=bevsu -e POSTGRES_DB=bevaddress -P -d --volumes-from bevdata mdillon/postgis

我做的一个备份数据库到bavaddress容器的目录中/var/lib/postgresql/backup

I 认为这意味着备份数据位于容器bevaddress(正在运行的进程)中,而不是数据只容器bevdata,我认为它很好。

现在,如果我docker pull mdillon/postgis到一个新的版本,我怎么能附上容器bevaddress的文件夹/var/lib/postgresql/backup,这样的mdillon/postgis一个新的实例和版本都可以访问该文件夹恢复数据库?

回答

2

据我所知,你不能。运行容器中的文件系统仅在运行期间存在。如果不安装卷,则无法允许第二个容器访问备份。

对于将来的备份,您可以创建装入/var/lib/postgresql/backup的第二个容器。

+0

这就是我也想到的解决方案。不幸的是,它迫使您提前考虑在Docker运行时添加第二个备份卷。后来似乎要么不可能这样做(无法通过docker start添加音量)。预先为备份/迁移任务添加卷应至少被描述为一种良好的做法。 – JohnDoe