如何将pg Admin 4连接到部署在Docker容器中的PostgreSQL

How to connect pg Admin 4 to PostgreSQL which is deployed in a Docker container

提问人:itehnoviking 提问时间:11/2/2023 更新时间:11/2/2023 访问量:37

问:

我创建了一个 ASP.NET Core 应用程序。此应用程序允许您通过 Entity Framework Core ORM 使用 PostgreSQL 数据库。在本地数据库上一切正常。当我尝试创建 docker 应用程序容器和数据库时,问题就开始了。这是我的docker-compose文件:

version: '3.4'

services:
  naladimbot:
    image: ${DOCKER_REGISTRY-}naladimbot
    build:
      context: .
      dockerfile: NaladimBot/Dockerfile
    ports:
      - "80:80"
    depends_on:
      - db
    networks:
      - mynetwork  
  db:
    image: postgres:latest
    ports:
      - "5432:5432"
    environment:
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: 23r2323ffsedsEGDS#%23EAF
      POSTGRES_DB: NaladimBot.Database
    volumes:
      - db:/var/lib/postgresql/
    networks:
      - mynetwork

volumes: 
  db: 

networks:
  mynetwork:
    driver: bridge

这是我在文件 appsettings.json 中的连接字符串:

"ConnectionStrings": {
  "DefaultConnection": "Server=db;Port=5432;Username=postgres;Password=23r2323ffsedsEGDS#%23EAF;Database=NaladimBot.Database;"
}

问题是这样的:当我在docker-compose模式下构建我的应用程序时,一切正常。Docker Desktop 引入了应用程序容器和数据库。

enter image description here

但是当我尝试通过 pg Admin 4(我也在 Docker 中创建的容器)连接到数据库时 - 什么也没发生。Docker 建议进行连接,但它不起作用。http://localhost:5432/

enter image description here

此外,我尝试了 0.0.0.0 , 172.18.0.1 , 172.18.0.2 而不是 localhost - 结果保持不变。

可能是什么问题?

.net postgresql docker-compose pgadmin

评论


答:

2赞 Mohamed El Hadramy Oumar 11/2/2023 #1

这里的服务器指的是运行 PgAdmin 的容器,没有运行它的 postgres。localhost

当您尝试连接时用作主机,因为它们都在同一网络上。dbmynetwork