postgresql - Docker 上的 Postgres 立即退出并删除外部文件系统中的数据
问题描述
我正在按照本文中的说明提取 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
我看到在-v
上面挂载的路径中创建了 Postgres 文件和数据,但容器在启动后很快退出,并且文件消失了。
我的问题:
为什么容器完全退出?
为什么会删除所有文件?的全部目的
-v
是在容器外保存数据。
更新1:
以下是容器短暂启动时我能够从容器中获取的日志(容器退出后,我只收到一条错误消息Error: No such container: postgres:9.5
但没有日志):
$ docker logs pg-docker
The files belonging to this database system will be owned by user "postgres".
This user must also own the server process.
The database cluster will be initialized with locale "en_US.utf8".
The default database encoding has accordingly been set to "UTF8".
The default text search configuration will be set to "english".
Data page checksums are disabled.
fixing permissions on existing directory /var/lib/postgresql/data ... ok
creating subdirectories ... ok
selecting default max_connections ... 100
selecting default shared_buffers ... 128MB
selecting default timezone ... Etc/UTC
selecting dynamic shared memory implementation ... posix
creating configuration files ... ok
更新 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 系统上是否重要?
解决方案
推荐阅读
- php - Laravel/Eloquent 规范化 JSON 响应的关系?
- reactjs - 如何在 ListItemText 中使用显示组件?
- email - Google Cloud 上的 SMTP 电子邮件服务器托管 - 套接字错误 10060
- sharepoint - 如何上传 SharePoint 文档的自定义缩略图
- python - 如何在第二个显示器/显示器上打开 Tkinter GUI?(视窗)
- sql - 关于两个日期之间值总和的 SQL 查询
- reactjs - react-navigation 5和Formik处理提交不起作用
- c++ - 复制构造函数没有被调用
- c++ - 运行使用自定义 gcc 编译的应用程序时,动态链接器直接调用分段错误
- r - R中日期类对象中的字符数