我需要一起使用两个容器:一个使用Tomcat,另一个使用数据库。我创建了以下描述服务的yaml文件:
postgredb:
image: postgres
expose:
- 5432
ports:
- 5432:5432
environment:
- POSTGRES_USER=user
- POSTGRES_PASSWORD=password
tomcat:
image: tomcat
links:
- postgredb:db
ports:
- 8080:8080
一旦启动docker-compose,我可以看到我无法从Tomcat访问数据库,除非我检索数据库的IP地址(通过docker inspect)并在将Tomcat连接池配置为D B。 根据我的理解,这两个容器应该链接起来,我希望在端口5432上的localhost上找到数据库。否则我看到链接容器的好处很少。 我的理解是否正确?任何指导将不胜感激!
答案 0 :(得分:14)
使用您在文件中定义的别名“db”来引用数据库主机名。
链接服务的容器可以通过主机名访问 与别名相同,如果未指定别名,则为服务名称。