【问题标题】:Connect to another container using Docker compose使用 Docker compose 连接到另一个容器
【发布时间】:2016-06-15 10:24:31
【问题描述】:

我需要同时使用两个容器:一个用于 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 连接池配置到数据库时使用它。

根据我的理解,这两个容器应该是链接的,我希望在 localhost 的 5432 端口上找到数据库,否则我看不到链接容器的好处。

我的理解正确吗?

【问题讨论】:

    标签: docker docker-compose


    【解决方案1】:

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

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

    来源:https://docs.docker.com/compose/compose-file/compose-file-v2/#links

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-04-01
    • 2021-09-29
    • 1970-01-01
    • 2020-03-06
    • 2019-02-24
    • 2021-01-26
    • 2017-11-13
    • 1970-01-01
    相关资源
    最近更新 更多