将Landoop Docker镜像与另一个泊坞窗镜像集成

我正在尝试运行2个docker集装箱。 一个是Landoop的Kafka容器,它暴露了几个端口到本地主机和一个kafka连接容器,它尝试访问另一个图像暴露的端口。 我能够访问由Landoop的Kafka容器暴露的端口,但有问题试图从另一个容器访问端口。

PS:我正在使用MAC,并尝试使用--network="host"启动我的其他容器。

 docker run -it --network="host" --env-file env-file.sh --name NAME IMAGE 

但是一旦我启动它,容器就会被杀死。 我在用

docker run --rm -it -p 2181:2181 -p 3030:3030 -p 8081:8081 -p 8082:8082 -p 8083:8083 -p 9092:9092 -h 127.0.0.1 -e ADV_HOST=127.0.0.1 landoop/fast-data-dev启动Landoop泊坞窗。

从文档中可以find以下信息:

连接到默认桥接networking的容器可以通过IP地址相互通信。 Docker不支持默认网桥上的自动服务发现。 如果希望容器能够通过容器名称parsingIP地址,则应该使用用户定义的networking。 您可以使用遗留docker运行链接选项将两个容器链接在一起,但在大多数情况下不build议这样做。

虽然你尝试使用hostnetworking并指挥自己127.0.0.1 几乎是有道理的; 通常该地址被分配给回送接口,所以不是使用能够访问您的机器上的其他端口 – 而是永远不会离开Docker容器。

如果您没有使用Docker Compose文件 – 通常会将所有服务都放在默认的覆盖networking中,而是想通过docker container run命令手动运行所有的东西 – 您的安装应该如下所示:

 docker network create your_new_network docker container run -d --network your_new_network --name a_container_1 your_image docker container run -d --network your_new_network --name another_container 

现在,从这些容器中,您可以分别以a_container_1another_container作为地址。

您的集装箱停运可能与之无关; 不幸的是,我不能用给出的信息来回答这个问题,但是这会给你足够的信息来连接你的容器。 干杯!