pg_restore到在docker容器中运行的postgres

Dav*_*sen 6 postgresql pg-restore docker docker-machine

我有一个数据库的备份,我将恢复到在docker容器内运行的postgres数据库.

我在OS X上使用的是docker-
machine.Postgres图像是postgres:9.4.

这是我到目前为止提出的脚本:

pg_restore --verbose --clean --no-acl --no-owner \
  -h tcp://`docker-machine ip default`:5432 \
  -U postgres \
  -d tonsser-api_development latest.dump
Run Code Online (Sandbox Code Playgroud)

但这不起作用.我收到错误:

pg_restore: connecting to database for restore
pg_restore: [archiver (db)] connection to database "tonsser-api_development" failed: could not translate host name "tcp://192.168.99.100:5432" to address: nodename nor servname provided, or not known
Run Code Online (Sandbox Code Playgroud)

nyx*_*x00 5

似乎没有在运行时执行此操作的适当解决方案,但是将转储文件复制到容器:

docker cp dumpfile DBcontainer:/dumpfile
Run Code Online (Sandbox Code Playgroud)

并从容器内恢复:

docker  exec -i -t DBcontainer /bin/bash
psql DBname < dumpfile
Run Code Online (Sandbox Code Playgroud)

一次使用效果很好......


Myk*_*rov 0

也许是因为您必须分别指定主机和端口?

-h `docker-machine ip default` -p 5432
Run Code Online (Sandbox Code Playgroud)

查看文档