我正在尝试连接并使用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>"
我哪里做错了?
1条答案
按热度按时间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>
连接到容器IP3-在容器中使用
psql
和docker exec -it <CONTAINER_NAME> psql -U <USERNAME>