Dockernetworking – 服务发现
我可能会问一个很小的问题,但是我一直在挣扎,自己却没有find解决这个问题的办法。
我试图更好地理解Dockernetworking是如何工作的,为此,我创build了一个简单的微服务体系结构,由2个简单的服务组成:一个Web应用程序(ms)和一个数据库(db)。
docker-compose.yaml
文件如下所示:
version: "3" services: ms: build: ./ms1 ports: - "8081:8080" db: image: postgres restart: always ports: - "8001:5432" environment: POSTGRES_USER: **** POSTGRES_PASSWORD: **** POSTGRES_DB: microservices
从Docker文档中,我应该可以使用stringpostgres://db:5432
从我的ms
服务连接到db
。 但是,尝试通过psycopg2 lib提供的连接function来连接它时
db_connection = connect(dbname="db_name", user="****", password="****", host="postgres://db:5432")
popup如下错误:
psycopg2.OperationalError: could not translate host name "postgres://db:5432" to address: Name or service not known
问题是:我想如何发现docker-compose文件中链接在一起的服务?