如何使用docker容器连接到postgres数据库

时间:2016-08-17 00:20:28

标签: ruby-on-rails postgresql docker-compose

我尝试使用pgAdmin连接到我的docker镜像中的postgres容器。但我似乎无法将其连接起来。这是我的docker-compose.yml:

version: '2'
services:
  web:
    build: .
    command: bundle exec rails s -p 3000 -b '0.0.0.0'
    volumes:
      - .:/livingrecipe
    ports:
      - '3000:3000'
    env_file:
      - .env
    links:
      - postgres
      - elasticsearch

  postgres:
    image: postgres

  elasticsearch:
    image: elasticsearch

我已经四处搜索,它看起来像localhost:5432除非在VM内部,否则无法工作,但我无法找到VM IP。在端口下查看Kitematic,这就是它所显示的内容:

enter image description here

我已经尝试在docker-compose.yml文件中指定端口,但后来我收到一个恼人的错误,说端口已经分配,​​并且无法弄清楚我的生活是什么使用这些端口所以不确定是什么那里。任何帮助指示我正确的方向要么让pgAdmin工作,要么只是通过gui像pgAdmin

来访问数据库的另一种方式

1 个答案:

答案 0 :(得分:3)

你可以在你的shell中做:

docker ps

这将为您提供机器上的图像列表。选择postgres图像的容器ID并输入shell:

docker inspect <container_id>

这将为您提供包含图片信息的哈希值。找到IPAddress密钥。在pgadmin中使用IP和您之前指定的端口(我猜5432)。