1.使用以下命令创建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
1.访问Docker容器:docker exec -it vteck-db bash
1.与客户端连接:root@f1ba565db798:/# psql -U postgres psql: error: could not connect to server: FATAL: role "postgres" does not exist
但是如果我使用docker run --rm -d -e POSTGRES_PASSWORD=root --name postgres postgres
创建Docker容器,我可以成功地使用psql - U postgres
进行连接。
我的第一步命令有问题吗?
2条答案
按热度按时间up9lanfz1#
从postgres readme on Docker hub开始:
POSTGRES_USER
此可选环境变量与
POSTGRES_PASSWORD
一起使用,以设置用户及其口令。此变量将创建具有超级用户权限的指定用户和同名的数据库。如果未指定,则将使用默认用户postgres
。换句话说,如果您指定
POSTGRES_USER
环境变量,将不会有postgres
使用者,而是会建立一个使用者,其名称来自环境变量(在您的案例中为odoo
)。roejwanj2#
在您的yml文件中,创建一个非“postgres”的POSTGRES_DB
从主机连接到容器:
然后,从容器中:
米迦勒