[英]Can not connect to a postgres database in a docker container from my local machine
我對 docker 和 postgres 有一個奇怪的問題。 我無法從本地機器連接到 docker 容器內的 psql。
首先,我使用以下命令創建了我的容器:
docker run -d -p 5432:5432 --name my-postgres -e POSTGRES_PASSWORD=mysecretpassword postgres
之后,我使用以下命令執行了容器:
docker exec -it my-postgres bash
在容器內,我使用 postgres 用戶啟動了 psql:
psql -U postgres
我創建了一個新數據庫:
CREATE DATABASE mytestdb;
一切都在容器內工作,但如果我想從我的機器連接到它,它只會顯示我機器上的數據庫。 我試過這個連接到postgres:
psql -h localhost -p 5432 -U postgres
我應該顯示這樣的內容:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------+----------+----------+------------+------------+-----------------------
mytestdb | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
postgres | postgres | UTF8 | en_US.utf8 | en_US.utf8 |
template0 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
template1 | postgres | UTF8 | en_US.utf8 | en_US.utf8 | =c/postgres +
| | | | | postgres=CTc/postgres
(4 rows)
但是我得到了這個:
List of databases
Name | Owner | Encoding | Collate | Ctype | Access privileges
-----------------+-----------------+----------+---------+---------+----------------------------------
user | user | UTF8 | C | C |
postgres | user | UTF8 | C | C |
template0 | user | UTF8 | C | C | =c/user +
| | | | | user =CTc/user
template1 | user | UTF8 | C | C | =c/user +
| | | | | user =CTc/user
(4 rows)
(END)
在每個教程中,我都看到他們做到了,但對我來說,它不起作用。 所以請幫助我。
問題是當您創建數據庫時。 CREATE DATABASE mytestdb
你忘記添加了;
命令應該類似於CREATE DATABASE mytestdb;
然后你有你的數據庫,你可以使用這些命令從容器或主機內部訪問它
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.