Docker:不能使用postgres客户端连接数据库容器
我创build了一个docker集装箱。 此数据库容器已成功运行。 我可以连接到这个容器,并查看数据库的所有细节。 这里有一些configuration:
services: db: container_name: db image: postgres:latest ports: - "5432:5432" environment: POSTGRES_USER: abc POSTGRES_PASSWORD: abc POSTGRES_DB: database_dev PGDATA: /var/lib/postgresql/data/pgdata volumes: - postres_volume:/var/lib/postgresql/data/
这是我从这个正在运行的容器中检查的信息:
"NetworkSettings": { "Bridge": "", "Ports": { "5432/tcp": [ { "HostIp": "0.0.0.0", "HostPort": "5432" } ] }, "Networks": { "medusa_default": { "IPAMConfig": null, "Links": null, "Aliases": [ "74f7f48596e3", "db" ], "NetworkID": "d48bbf5453a7c42facda69a8c2c741a20bc18d35238854c00f068bd19119afc4", "EndpointID": "5587658ae084eba71e65fb4712bc75a0ea7c240b600d77d4b4722f5a91818d73", "Gateway": "172.19.0.1", "IPAddress": "172.19.0.5", "IPPrefixLen": 16, "IPv6Gateway": "", } }
基于这些信息,我尝试了一些postgres客户,如PgAdmin4或Adminer,并使用这些信息:
host: 172.19.0.5 (get from inspect) port: 5432 (get from inspect) user name: abc (get from docker-compose config) password: abc (get from docker-compose config) database name: abc_dev (get from docker-compose config)
但所有的客户端无法连接。 我不知道这里有什么问题吗? 请告诉我。
从inspect
中得到的IP地址是Docker内部networking中的地址,而不是您可以从容器外看到的地址。
由于您在撰写文件( ports
下的5432:5432
设置)中公开端口,因此只需连接到运行容器的主机Docker上的端口5432
即可。 如果您尝试从主机连接Docker, localhost:5432
将会工作。
- docker机+ Gitlabregistry – 如何使authentication工作?
- docker机和stream浪汉(关于装载量)
- docker-storage-setup软件包在我的rhel 7上不可用? 我如何得到它? 我需要使用设备映射器创build一个精简池。
- 在同级Docker容器中使用env-file
- 在IBM Cloud专用中使用定制的Dockerpath
- 在Docker中一起安装SQL和一个新的ASP.Net Core项目
- 在Ruby on Rails中使用Docker时控制台不会显示
- 通过JMX访问docker容器中运行的tomcat
- 从networking调用时,docker错误