You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过数据库客户端访问Docker卷中运行的PostgreSQL数据库

问题描述

我有一个已配置Docker的ASP.NET 8 WebAPI项目,API容器和存储PostgreSQL数据的Docker卷均可正常运行,API能通过接口获取数据库中的数据。但我希望查看该Docker卷对应的数据库,使用Visual Studio Code的PostgreSQL插件(Chris Kolkman开发的PostgreSQL管理工具)可以连接本地安装的PostgreSQL,但无法连接Docker中运行的这个数据库。

我的docker-compose.yml配置如下:

services:
 #asp.net web application
  webapp:
    container_name: shop-back-api
    build:
      context: .
      dockerfile: Dockerfile
    ports:
      - "5999:5999"
    environment:
      - ASPNETCORE_ENVIRONMENT=Development
      - Database__ConnectionStrings__DefaultConnection=Host=db;Port=5432;Database=shopback;Username=postgres;Password=XXXXX


  #postreSQL database
  db:
    container_name: shop-back-db
    image: postgres:latest
    ports:
      - "5432:5432"
    environment:
      POSTGRES_DB: shopback
      POSTGRES_USER: postgres
      POSTGRES_PASSWORD: XXXXX
    volumes:
      - postgres_data:/var/lib/postgresql/data

volumes:
  postgres_data:

我还安装了VSCode Docker扩展,能查看镜像、容器和卷,但不确定如何借此访问数据库。


解决方案

方法一:通过VSCode PostgreSQL插件直接连接

你的docker-compose.yml已经将PostgreSQL容器的5432端口映射到本地5432端口,直接用本地地址即可连接:

  • 打开VSCode的PostgreSQL插件,点击「Add Connection」
  • 填写以下连接参数:
    • 主机:localhost(或127.0.0.1)
    • 端口:5432
    • 数据库:shopback
    • 用户名:postgres
    • 密码:你配置的XXXXX
  • 保存连接后即可正常访问数据库。

方法二:通过Docker命令行进入容器操作

如果插件连接异常,可以直接进入PostgreSQL容器的命令行操作:

  1. 打开终端,执行命令进入容器的PostgreSQL交互环境:
    docker exec -it shop-back-db psql -U postgres -d shopback
    
  2. 进入后可直接执行SQL命令,例如:
    • 查看所有表:\dt
    • 查询表数据:SELECT * FROM your_table_name;

方法三:利用VSCode Docker扩展快速进入容器

借助已安装的Docker扩展,可快速打开容器终端操作数据库:

  • 在VSCode的Docker扩展面板中找到shop-back-db容器
  • 右键点击容器,选择「Attach Shell」,打开容器终端
  • 在终端中执行psql -U postgres -d shopback,进入数据库交互环境后即可操作。

内容的提问来源于stack exchange,提问作者David Pugh

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.20 06:00:03