【问题标题】:Communication from Docker-Container to outside从 Docker-Container 到外部的通信
【发布时间】:2021-12-08 07:07:23
【问题描述】:

我对 docker 主题还很陌生,我有一个将容器服务与传统服务连接起来的问题。

目前我正在考虑用 grafana docker 容器替换传统的 grafana 安装(直接在 linux 服务器上)。

在 grafana 中,我必须连接到不同的数据源,例如 mysql 实例、Winsows SQL 数据库等。因此,grafana 正在拉取数据。所有这些数据源都驻留在(并且仍将驻留在)其他主机上,它们不是容器。

那么我怎样才能实现我的容器能够与这些数据源进行通信呢?默认情况下是否有可能,还是我必须实现一种特殊的网络?我看到有一个叫macvlan的选项...是正确的方法吗?

BR 一月

【问题讨论】:

    标签: docker networking grafana


    【解决方案1】:

    据我所知,这应该是开箱即用的。至少,我在 docker 容器中使用了 Grafana,它运行良好。

    您可以通过打开容器外壳来测试从 docker 容器内部到某些外部资源的连接,如下所示:

    docker exec -it <container ID> /bin/bash
    

    然后

    root@a9cbebfc4564:/# curl google.com
    

    或者

    root@a9cbebfc4564:/# ping <bla-bla>
    

    上述命令依赖于 docker 镜像环境(如操作系统或安装的软件),但这可以像在常规 Unix 环境中一样解决

    附:我曾经遇到过 docker2host 连接问题,但这是由于主机端的防火墙配置不正确。

    【讨论】:

      【解决方案2】:

      由于您要替换传统安装,因此可以从 host networking 开始。此模式为您提供与在主机上安装相同的连接体验。快速入门很简单:

      docker run --network host grafana/grafana

      请注意,由于 Grafana 容器现在共享主机网络,因此无需 --publish--publish-all 端口。

      【讨论】:

        猜你喜欢
        • 2018-01-01
        • 2015-04-18
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-04-23
        • 2019-09-28
        • 1970-01-01
        相关资源
        最近更新 更多