在Dockerfile中链接Docker容器

问题描述

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

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

我已经容器化了我的应用程序,现在我将其部署为容器,但是仅当我使用--link jaeger链接两个容器(预期)时,通信才有效。

我的问题是:

是否可以在Dockerfile中添加--link参数,因此在运行docker run命令时无需指定它?

解决方法

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

以下是两种解决方案:

  1. 使用Docker compose。这样,Docker将自动将所有容器链接在一起
  2. 创建一个bridge网络并添加您要链接到其中的所有容器。这样,您便可以进行名称解析,并且可以使用每个容器的名称联系每个容器
,

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

docker network create [OPTIONS] NETWORK

,然后使用--network =“ network”运行 与network一起使用docker-compose并相互链接 例如:

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