当前位置: 首页 > 知识库问答 >
问题:

如何向主机公开Docker网络?

王凯旋
2023-03-14

请考虑以下docker-compose.yml

version: '2'
services:
    serv1:
        build: .
        ports:
          - "8080:8080"
    links:
      - serv2

    serv2:
        image: redis
        ports:
          - "6379:6379"

我将端口连接到主机,以便管理我的服务,但这些服务只需使用默认的docker网络就可以相互访问。例如,运行在serv1上的程序可以访问redis:6379并且一些DNS魔术将使其工作。我想将我的主机添加到这个网络中,这样我就可以通过其主机名:port访问容器的端口。

共有1个答案

安博文
2023-03-14

您可以通过在与应用程序位于同一网络上的容器中运行dns代理(如dnsmasq)来实现这一点。然后将主机dns指向容器ip,您就可以解析主机名,就像您在网络的容器中一样。

https://github.com/hiroshi/docker-dns-proxy就是其中的一个例子。

 类似资料:
  • 我可能遗漏了一些可笑的东西,但我试图向我的主机(Mac)公开的每个docker容器似乎都不起作用。我可以看出这些容器正在运行,并且似乎已经正确地暴露在我选择的端口中。我错过了什么明显的东西吗?任何帮助都将不胜感激。 我下载了最新的ElasticSearch图像:https://www.elastic.co/guide/en/elasticsearch/reference/current/docke

  • 我有一个正在运行的MySQL容器,我在里面导入了很多数据(花了我几个小时)。 现在,我想在主机上使用GUI应用程序(DBeaver)从这个容器中查询数据。有没有一种方法可以将正在运行的容器的网络公开给主机,以便连接到它? 我一直在四处寻找,到目前为止最有希望的选择是运行一个带有标签的新容器,但是当我这样做的时候,所有导入的数据都不见了。 谢谢你!

  • 主机:Mac OS X 10.10.5 Docker 1.10.1 我做过这样的事: 步骤1:为永久postgres数据创建卷 -->没有打开端口5432 更新2:更陌生。我也这样做过: 阻止Docker。然后,在我的主机中运行一个普通的PostgreSQL 9.4.4实例(这里不涉及docker,只在Mac OS X主机中运行postgres,监听端口5432)。一切正常: 为什么? 有道理吗?

  • 我有一个 docker 容器,我想给它 --network=host AND -。我需要连接到主机网络才能将主机数据狗服务器 (UDP) 和 网络用于其数据库。 尝试添加这两个网络会导致。 知道正确的处理方法吗?

  • 本文向大家介绍Docker主机网络与网桥网络,包括了Docker主机网络与网桥网络的使用技巧和注意事项,需要的朋友参考一下 可用于Docker网络的单主机网络有两种类型:“主机”和“桥”网络。单主机网络意味着它们的影响对于每个单独的主机都是局部的。 在主机网络的情况下,特定的Docker容器可以直接使用主机的网络来发送和接收数据包。对于网桥网络,它需要端口映射才能进行通信。 为了更好地理解它们,让

  • 当我在一台docker主机上为同一个web映像启动两个docker容器时。 两个docker容器在同一端口监听 两个集装箱的端口映射到docker主机的不同端口:, 要从docker主机外部访问两个容器,需要通过访问docker主机ip和端口或 是否有一种解决方案可以通过ip和端口从docker主机外部访问docker容器,,而无需端口映射? 不同dock主机上的所有docker容器都可以直接相互