容器中的容器访问同一Kubernetes容器中的另一个容器

时间:2019-06-02 00:09:41

标签: kubernetes dind

在Kubernetes窗格中,我有:

    busybox容器中运行的
  • dind容器
  • fluentd容器

我了解dind是否要访问fluentd,它只需连接到本地主机:9880。但是,如果busybox要访问fluentd怎么办,如下图所示。我应该使用哪个地址?

dind access to another container

1 个答案:

答案 0 :(得分:0)

这些提示可能会帮助您:

1。第一种方法

在docker:latest容器内部,您最初尝试访问它的地方,该容器将在为docker:dind容器设置的任何主机名上可用。在这种情况下,您使用--name dind,因此curl dind:busybox_port将为您提供标准。

然后您可以从docker:dind容器(busybox)内部连接到fluentd,它将在localhost:9880上可用。

2。第二种方法

另一种方法是暴露[/ ...] ,在这种情况下,我们假设busyboox和fluentd位于不同的网络中 您还可以在docker run命令中指定此名称,例如:

$ docker run --expose=1234 busybox

但是 EXPOSE 不允许通过已定义的端口与同一网络外部的容器或主机进行通信。为此,您需要发布端口。

发布端口并将其映射到主机

要在运行容器时发布端口,请在docker run上使用 -p 标志发布和映射一个或多个端口,或使用 -P 标志进行发布所有暴露的端口并将它们映射到高阶端口。

$ docker run -p 80:80/tcp -p 80:80/udp busybox

然后使用 localhost:9880

从busybox连接到流利

您可以在此处找到更多信息:docker-in-docker

希望对您有帮助。