问题描述
我创建了一个示例应用程序,该应用程序将跟踪数据发送到Jaeger。从IDE运行时,数据可以完美发送。
我已经容器化了我的应用程序,现在我将其部署为容器,但是仅当我使用--link jaeger
链接两个容器(预期)时,通信才有效。
我的问题是:
是否可以在Dockerfile中添加--link
参数,因此在运行docker run
命令时无需指定它?
解决方法
如果要保留两个单独的映像,则不可能在Dockerfile中执行此操作。您应该如何预先知道要链接的容器的名称/ ID?
以下是两种解决方案:
- 使用Docker compose。这样,Docker将自动将所有容器链接在一起
- 创建一个
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