迁移数据
问题描述:
我有一个数据仅供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
一个新的实例和版本都可以访问该文件夹恢复数据库?
答
据我所知,你不能。运行容器中的文件系统仅在运行期间存在。如果不安装卷,则无法允许第二个容器访问备份。
对于将来的备份,您可以创建装入/var/lib/postgresql/backup
的第二个容器。
这就是我也想到的解决方案。不幸的是,它迫使您提前考虑在Docker运行时添加第二个备份卷。后来似乎要么不可能这样做(无法通过docker start添加音量)。预先为备份/迁移任务添加卷应至少被描述为一种良好的做法。 – JohnDoe