我已经完成了docker-compose,并且能够运行附加到postgresql镜像的web服务。问题是,当我试图访问数据库时,我无法查看postico上的数据。镜像的名称是db,当我尝试在连接前在postico上将hostname指定为"db“时,我得到一个错误消息: hostname not found。我输入了凭据、端口和数据库名称,与我在docker-compose文件中键入它们的方式相同。
有人知道如何在容器中找到正确的连接设置吗?
version: '3.6'
services:
phoenix:
# tell docker-compose which Dockerfile it needs to build
build:
context: .
dockerfile: Dockerfile.phoenix.development
# map the port of phoenix to the local dev port
ports:
- 4000:4000
# mount the code folder inside the running container for easy development
volumes:
- ./my_app:/app
# make sure we start mongodb when we start this service
# links:
# - db
depends_on:
- db
- redis
environment:
GOOGLE_CLIENT_ID: ${GOOGLE_CLIENT_ID}
GOOGLE_CLIENT_SECRET: ${GOOGLE_CLIENT_SECRET}
FACEBOOK_CLIENT_ID: ${FACEBOOK_CLIENT_ID}
FACEBOOK_CLIENT_SECRET: ${FACEBOOK_CLIENT_SECRET}
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${POSTGRES_USER}
go:
build:
context: .
dockerfile: Dockerfile.go.development
ports:
- 8080:8080
volumes:
- ./genesys-api:/go/src/github.com/sc4224/genesys-api
depends_on:
- db
- redis
- phoenix
db:
container_name: db
image: postgres:latest
ports:
- "5432:5432"
environment:
POSTGRES_PASSWORD: ${POSTGRES_PASSWORD}
POSTGRES_USER: ${POSTGRES_USER}
volumes:
- ./data/db:/data/db
restart: always
redis:
container_name: redis
image: redis:latest
ports:
- "6379:6379"
volumes:
- ./data/redis:/data/redis
entrypoint: redis-server
restart: always
发布于 2020-10-28 21:16:43
使用主机名作为localhost。
您不能在内部docker网络外部使用主机名db。这将在同一网络中运行的应用程序中工作。由于您将数据库公开为在端口5432上运行,因此它是通过0.0.0.0:5432->5432/tcp公开的,因此可以通过localhost作为主机和端口5432进行访问
https://stackoverflow.com/questions/51510062
复制相似问题