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文件中链接在一起的服务?