【问题标题】:Link docker containers in the Dockerfile在 Dockerfile 中链接 docker 容器
【发布时间】:2020-09-11 08:16:39
【问题描述】:

我有一个 Jaeger 在我本地机器的 docker 容器中运行。

我创建了一个将跟踪数据发送到 Jaeger 的示例应用程序。从 IDE 运行时,数据发送完美。

我已将我的应用程序容器化,现在我将其部署为容器,但只有在我使用 --link jaeger 链接两个容器时才能进行通信(预期)。

我的问题是:

有没有办法在我的 Dockerfile 中添加--link 参数,这样我在运行docker run 命令时就不需要指定它了?

【问题讨论】:

    标签: docker dockerfile jaeger


    【解决方案1】:

    如果您想保留两个单独的图像,则不可能在 Dockerfile 中执行此操作。您应该如何提前知道要链接的容器的名称/ID?

    以下是两种解决方案:

    1. 使用 Docker 组合。这样,Docker 会自动将所有容器链接在一起
    2. 创建一个bridge 网络并在其中添加所有要链接的容器。这样,您将获得名称解析,并且您将能够使用其名称联系每个容器

    【讨论】:

    • 我只想补充一点,使用容器名称作为主机名仅适用于自定义 Docker 桥接网络。默认不支持此功能(作为安全预防措施)。
    【解决方案2】:

    我建议你使用netwoking,通过创建:

    docker network create [OPTIONS] NETWORK
    

    然后使用 --network="network" 运行 使用 docker-compose 和 network 并相互链接 示例:

      version: '3'
        services:
          jaeger:
           network:
            -network1
          other_container:
            network:
             -network1
        networks:
          network1:
            external: true
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-02-11
      • 1970-01-01
      • 2016-04-16
      • 1970-01-01
      • 2017-09-02
      • 2021-08-19
      • 2015-02-23
      相关资源
      最近更新 更多