Postgresql Docker上的Postgres立即退出并删除外部文件系统中的数据
我正在按照中的说明提取Postgres Docker图像并运行它Postgresql Docker上的Postgres立即退出并删除外部文件系统中的数据,postgresql,docker,Postgresql,Docker,我正在按照中的说明提取Postgres Docker图像并运行它 $mkdir-p$HOME/docker/volumes/postgres $ $docker pull postgres:9.5 $ $docker run--name pg docker-e POSTGRES_PASSWORD=POSTGRES-d-p 5432:5432-v$HOME/docker/volumes/POSTGRES:/var/lib/postgresql/data POSTGRES:9.5 我看到Postg
$mkdir-p$HOME/docker/volumes/postgres
$
$docker pull postgres:9.5
$
$docker run--name pg docker-e POSTGRES_PASSWORD=POSTGRES-d-p 5432:5432-v$HOME/docker/volumes/POSTGRES:/var/lib/postgresql/data POSTGRES:9.5
我看到Postgres文件和数据在我用上面的-v
挂载的路径中创建,但是容器在启动后很快退出,文件消失
我的问题是:
-v
的全部目的是
在容器外部保留数据error:No-this-container:postgres:9.5
,但没有日志):
$docker日志pg docker
属于该数据库系统的文件将归用户“postgres”所有。
此用户还必须拥有服务器进程。
数据库集群将使用区域设置“en_US.utf8”进行初始化。
默认数据库编码相应地被设置为“UTF8”。
默认文本搜索配置将设置为“英语”。
数据页校验和被禁用。
正在修复现有目录/var/lib/postgresql/data上的权限。。。好啊
正在创建子目录。。。好啊
正在选择默认的最大连接数。。。100
正在选择默认共享缓冲区。。。128MB
正在选择默认时区。。。Etc/UTC
正在选择动态共享内存实现。。。posix
正在创建配置文件。。。好啊
更新2:
运行docker
而不运行-d
会产生更多的输出,这是造成这种情况的原因:
creating template1 database in /var/lib/postgresql/data/base/1 ...
LOG: could not link file "pg_xlog/xlogtemp.36" to "pg_xlog/000000010000000000000001": Operation not supported
FATAL: could not open file "pg_xlog/000000010000000000000001": No such file or directory
child process exited with exit code 1
initdb: removing contents of data directory "/var/lib/postgresql/data"
我在Git Bash shell中的Windows系统上,这有关系吗?启动它时,容器日志会说什么?通常会有一些提示。@DavidMaze我已经将日志添加到了原始帖子中。其中没有任何内容看起来非常有用。请尝试删除-d选项:这将在前台启动容器,您将看到它生成的所有日志。@Dmitry这样做确实产生了更多的输出。我已经在我的文章中添加了一个更新2。@代码修补者我认为Windows上的符号链接可能会出现问题,无论您是否在Git Bash shell中。如果您创建一个docker卷,而不是从主机文件系统绑定装载目录,该怎么办?