2015-05-09 91 views
3

我正在使用来自Docker Hub的股票官方Postgres图像。 docker pull postgres。我想将Postgres容器中的data目录映射到我的OS X主机。所以,我试了这个。Postgres Docker Image:无法将数据库映射到主机

docker run --rm -p 5432:5432 -e POSTGRES_PASSWORD=mypass -v `pwd`/data:/var/lib/postgresql/data postgres 

这导致Postgres容器无法正确启动。

fixing permissions on existing directory /var/lib/postgresql/data ... ok 
creating subdirectories ... initdb: could not create directory "/var/lib/postgresql/data/global": Permission denied 
initdb: removing contents of data directory "/var/lib/postgresql/data" 

我想要达到的目标是让存储在主机上我的数据库中的数据,这样我可以从以前的实例启动Postgres的容器,并把它读(或负载)的数​​据库。我在正确的轨道上,还是这是一种实现数据库持久性的愚蠢方式?

+0

这可以像“数据”子目录上的权限问题一样简单吗? –

+0

在容器中,'data'目录由'root'拥有。在主持人中,我是'data'的所有者。那是问题吗? – 425nesp

+0

'ls -l。/ data'的结果是什么? –

回答

0

根据官方documentation您应该使用boot2docker来解决问题。但是,没有它,您将无法安装容器。