相关帖子: 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
...
答案 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中使用数据库凭据: