Link docker Dockerfile 中的容器

Link docker containers in the Dockerfile

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

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

我已经将我的应用程序容器化,现在我将它部署为一个容器,但只有当我使用 --link jaeger 到 link 两个容器(预期)时,通信才有效。

我的问题是:

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

如果您想保留两个单独的图像,则无法在 Docker 文件中执行此操作。您应该如何提前知道您要 link 的容器的 name/id?

以下是两种解决方案:

  1. 使用Docker撰写。这样,Docker会自动link所有的容器一起
  2. 创建一个bridge 网络并添加所有你想要的容器到link 里面。这样,您就可以进行名称解析,并且可以使用名称联系每个容器

我建议您使用 netwoking,方法是创建:

docker network create [OPTIONS] NETWORK

然后 运行 使用 --network="network" 将 docker-compose 与 network 和 link 相互使用 示例:

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