使用Docker compose连接到另一个容器

时间:2016-03-02 14:03:09

标签: docker docker-compose

我需要一起使用两个容器:一个使用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上找到数据库。否则我看到链接容器的好处很少。 我的理解是否正确?任何指导将不胜感激!

1 个答案:

答案 0 :(得分:14)

使用您在文件中定义的别名“db”来引用数据库主机名。

  

链接服务的容器可以通过主机名访问   与别名相同,如果未指定别名,则为服务名称。