使用以下命令创建一个 postgres docker 容器:docker run -v /home/ec2-user/Vteck-postgres-data:/var/lib/postgresql/data -d -e POSTGRES_USER=odoo POSTGRES_PASSWORD=odoo -e POSTGRES_DB=postgres --name vteck-db postgres
访问Docker容器:
docker exec -it vteck-db bash
与客户端连接:root@f1ba565db798:/# psql -U postgres psql: error: could not connect to server: FATAL: role "postgres" does not exist
但如果我使用 创建 Docker 容器
docker run --rm -d -e POSTGRES_PASSWORD=root --name postgres postgres,我可以成功连接psql - U postgres。
我第一步的命令有问题吗?
ane*_*yte 12
来自Docker hub 上的 postgres 自述文件:
POSTGRES_USER
POSTGRES_PASSWORD此可选环境变量与设置用户及其密码结合使用。该变量将创建具有超级用户权限的指定用户和同名的数据库。如果未指定,postgres则将使用默认用户。
换句话说,如果您将某些内容放入POSTGRES_USER环境变量中,启动脚本将遵循这一点并创建该用户而不是默认用户(postgres即)。
此外,此变量和其他POSTGRES_*变量仅在初始启动期间数据库目录为空时使用。因此,如果您使用其他值重新启动容器,则不会产生任何影响(您将在日志中看到有关“数据库似乎正常,跳过初始化”的内容),除非您手动删除数据库。
| 归档时间: |
|
| 查看次数: |
17405 次 |
| 最近记录: |