如何引用容器内的非docker IP地址?

时间:2018-10-29 18:06:45

标签: docker docker-compose

使用docker-compose文件时,我可以在其他容器中通过其名称引用容器。

version: '3'
network:
  mynet:
    external: false
services:
  database:
    image: mariadb
    network:
    - mynet
  application:
    build: .
    network:
    - mynet

以上表示我可以像这样引用数据库:database:3306容器内部的application

我是否可以添加可以以相同方式引用的非docker IP地址?假设我的database服务器不是由docker管理的,但是我想以同样的方式在application内部引用它?

links已弃用,但我希望能够执行以下操作:

服务:   应用:     建立:。     链接:     -“ 127.0.0.10:数据库”

在没有links的情况下是否可以实现这种目的?

1 个答案:

答案 0 :(得分:2)

我通常通过应用程序要查找的环境变量来执行此操作。例如,应用程序代码可以使用名为foreach (Value v in DocumentData.Values) { switch (v.SourceType) { case KfxLinkSourceType.KFX_REL_BATCHFIELD: BatchFields.Add(v.SourceName, v.Value); break; case KfxLinkSourceType.KFX_REL_DOCUMENTID: break; case KfxLinkSourceType.KFX_REL_INDEXFIELD: // index fields may also contain table fields if (v.TableName == "") { // this is a regular index field IndexFields.Add(v.SourceName, v.Value); } else { // this is a table field! } break; case KfxLinkSourceType.KFX_REL_TEXTCONSTANT: TextConstants.Add(v.SourceName, v.Value); break; case KfxLinkSourceType.KFX_REL_UNDEFINED_LINK: break; case KfxLinkSourceType.KFX_REL_VARIABLE: break; } } 的环境变量,然后只需确保在Docker映像运行时将其设置为已设置即可。使用上面的DATABASE_URL文件作为基础,您可以像这样传递数据库URL:

docker-compose.yml