docker 无法使用postgres进行验证

cl25kdpy  于 2023-03-29  发布在  Docker
关注(0)|答案(1)|浏览(124)

我正在尝试连接并使用psql运行postgres容器:

docker pull postgres

docker run -e  POSTGRES_PASSWORD=password -d postgres

C:\Program Files\PostgreSQL\13\bin>psql <myUserName>
Password for user <myUserName>:

此时,当我键入密码时,它显示错误

psql: error: FATAL:  password authentication failed for user "<myUserName>"

我哪里做错了?

h22fl7wq

h22fl7wq1#

当你使用docker run -e POSTGRES_PASSWORD=password -d postgres时,POSTGRES_PASSWORD将被设置为默认用户postgres。你可以用POSTGRES_USER环境指定你的用户。
第二件事是,当你运行一个postgresql容器,并且没有绑定任何端口时,你不能从外部连接到该容器。所以你不能用纯pqsl命令连接到你的容器。这里你有3种方法连接到你的容器:
1-使用docker run -e POSTGRES_PASSWORD=password -p 5432:5432 -d postgres运行container,然后使用psql -h <YOUR_IP> -p 5432 -U <USERNAME>连接到它
2-使用docker inspect <CONTAINER_NAME>命令获取容器IP,然后使用psql -h <CONTAINER_IP> -U <USERNAME>连接到容器IP
3-在容器中使用psqldocker exec -it <CONTAINER_NAME> psql -U <USERNAME>

相关问题