无法从pgAdmin连接到Postgres容器

时间:2015-08-03 23:09:30

标签: postgresql docker

相关帖子: 1)docker postgres pgadmin local connection

2)https://coderwall.com/p/qsr3yq/postgresql-with-docker-on-os-x(在示例中"名称"未填写条目)

有两种方法可以完成这项任务,我使用官方postgres

方法1:

并使用

运行它
sudo docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -p 5432:5432 -d postgres

然后与

连接
Name: postgres
Host: localhost
Port: 5432
user
pass
...

方法2:

开头
sudo docker run --name some-postgres -e POSTGRES_PASSWORD=mysecretpassword -d postgres

然后检查容器的IP

sudo docker inspect

说结果

172.17.42.1

然后用pgAdmin标签连接属性填充信息

Name: postgres
Host: 172.17.42.1
Port: 5432
user
pass
...

2 个答案:

答案 0 :(得分:3)

由于您要将容器上的端口5432映射到-p 5432:5432语句中docker run的主机上的同一端口,请尝试将pgadmin连接到主机上的端口5432而不是容器

答案 1 :(得分:1)

我将其包含在docker yaml文件中以获取数据库和pgAdmin:

database:
    image: postgres:10.4-alpine
    container_name: kafka-nodejs-example-database
    environment:
      POSTGRES_USER: ${POSTGRES_USER}
      POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
    expose:
      - "5432"
    ports:
      - 8000:5432
    volumes:
      - ./services/database/schema.sql:/docker-entrypoint-initdb.d/1-schema.sql
      - ./services/database/seed.sql:/docker-entrypoint-initdb.d/2-seed.sql
  pgadmin:
    image: dpage/pgadmin4
    ports:
      - 5454:5454/tcp
    environment:
      - PGADMIN_DEFAULT_EMAIL=admin@mydomain.com
      - PGADMIN_DEFAULT_PASSWORD=postgres
      - PGADMIN_LISTEN_PORT=5454

postgres用户名是alphaone,密码是xxxxxxxxxxx。

执行docker ps获取容器ID,然后docker inspect <dockerContainerId> | grep IPAddress

例如:docker inspect 2f50fabe8a87 | grep IPAddress

将Ip地址插入pgAdmin中,并在docker中使用数据库凭据:

pgAdmin