问题标签 [docker-networking]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
2 回答
12653 浏览

docker - 如何在部分隔离的主机上的 docker 容器内运行 yum?

我有一台位于半隔离网络上的机器。我必须使用代理连接到互联网。我已经验证在我的主机上,设置 http_proxy 环境变量后,我可以从公共 yum 存储库接收更新。

现在我试图在我机器上的 docker 容器中做同样的事情,但它似乎不起作用。

我在主机网络模式下启动了我的容器,所以我假设我应该在我的容器中拥有与我的主机相同的网络堆栈。因此,如果我正确设置了 http_proxy,我应该在容器内外具有相同的 yum 行为。

是否可以在主机位于需要 http_proxy 访问 yum 的半隔离网络上的 docker 容器中运行 yum?

0 投票
1 回答
1157 浏览

networking - 获取与 docker Network 关联的网桥名称

我正在使用“docker network create --d bridge mynet”创建一个 docker 网络。我想获取与此 docker 网络关联的网桥名称。

我知道我可以使用“-o”来提供网桥名称。例如:“docker network create --d bridge -o com.docker.network.bridge.name=mybridge mynet”。此方法适用于普通的网桥驱动程序,但在我的情况下,我使用的是 ovs 驱动程序,因此我将网络启动为“docker network create --d ovs mynet”。如果我在 ovs 驱动程序的情况下使用“-o”,它就不起作用。

请建议我一种方法来获取与网络关联的网桥名称。当我创建网络时正在创建的新网桥,用它创建的网桥有一个随机名称,我可以使用“ifconfig”命令查看它。

0 投票
1 回答
185 浏览

docker - 如何在 docker 覆盖网络中使用自定义名称作为容器网络名称?

当我们设置一个覆盖网络时,我们可以使用容器名称来解析容器地址。这很好用。

我可以使用其他一些自定义网络名称吗?

例如,如果我的容器名称是foo,我可以在我的覆盖网络中解析它bar吗?

0 投票
3 回答
17087 浏览

docker - 在同一主机上的不同网络中的 Docker 容器之间进行通信

是否有可能使同一主机内不同网络中的容器进行通信?请注意,我目前没有使用 docker-compose。

以下是我所做的总结。我使用以下命令创建了两个网络

然后我使用以下命令在每个创建的网络上运行两个容器:

然后,我从使用创建的网络中识别出每个容器的 IP 地址

使用那些我能够在同一网络中的容器之间进行通信,但我无法跨网络的容器之间进行通信。只有将容器添加到同一网络,才能进行通信。

非常感谢...

0 投票
2 回答
3688 浏览

nginx - Docker - nginx 代理 - 访问容器之间的主机

我有网络应用程序。

  1. 公共网络应用程序 (app1)
  2. api 网络应用 (app2)

我为此应用程序进行 docker 配置。每个应用程序都在其容器中。要从 Web 访问此应用程序,请使用 nginx 配置容器,其中 nginx 代理所有请求。
所以我可以运行 - http://app1.dev/http://app2.dev/

但我需要从 app1 访问http://app2.dev/(从 app1 容器访问主机 app2.dev)。

Ping(来自 app1 容器):

我应该配置什么,才能从 app1 容器访问http://app2.dev/主机?

Nginx 代理配置

码头工人撰写

docker-compose ps

0 投票
2 回答
454 浏览

docker - 如何在 docker 覆盖网络创建期间避免竞争条件?

我有两台机器 HostA 和 HostB 正确配置了 consul 和 docker 守护进程,以便我可以使用docker network create -d overlay sharednet

我必须TestScript.sh检查网络是否存在,如果不存在则创建网络。这个脚本在 HostA 和 HostB 上都可用。我也有一个MasterScript.shonly on A,它基本上只是TestScript.sh在每台机器上调用。运行后MasterScript.sh,我看到了一个令人惊讶的结果,创建了两个同名的网络!!!这可以说是一个 docker 守护进程同步问题。

预期的行为是,当我在 HostA 上创建网络testnw时,在 HostB 上我应该看到类似这样的内容

由于一些限制,我无法修改.MasterScript.sh但我可以修改我的TestScript.sh. 所以问题是,我有可能在这个限制下解决这个竞争条件吗?

0 投票
1 回答
296 浏览

nginx - 在 Nginx 中通过主机名动态查找容器的地址

我目前正在尝试在单个主机上运行两个容器,一个是应用程序(Ruby on Rails),另一个是 Nginx 作为反向代理和缓存。该应用程序在 TCP 端口 80 上运行。我想要做的是关闭我的应用程序容器,将其删除,然后再次启动它,而无需重新启动 nginx。问题是 Nginx 似乎只查找容器的 IP 一次,所以如果它出现故障然后备份到不同的地址,那么 Nginx 只会抱怨那里什么都没有。

我尝试了几件事:

  • 用于使用resolver 127.0.0.11 valid=5Docker 的 DNS
  • 使用upstream
  • 使用变量尝试让 nginx 在运行时解析。

我不知道还能去哪里看,但如果应用程序在不同的 IP 地址上启动,这些选项都不起作用。有什么我想念的东西使这不可能吗?

谢谢。

0 投票
1 回答
281 浏览

postgresql - 带有 Docker 容器和主机 LAN 的 Postgres 网络

我在 ARM 设备上的 Docker 容器中运行 Postgres。我想允许来自以下两者的连接:网络容器 (172.17.0.x) 和主机的 LAN 网络 (192.168.100.x)。

这个对吗?:

pg_hba.conf

对于 postgres.conf,我可以为该listen_addresses字段使用 CIDR 掩码吗?

我的联网容器的主机名将与容器名称相同。我可以假设 Docker DNS 服务器会将所有容器和外部机器主机名解析为 IP 地址,并且 Postgres 将允许这些连接吗?

0 投票
1 回答
1111 浏览

docker - 如何使用 docker remote api 使用另一个容器的网络命名空间创建容器

我可以运行以下命令来使用另一个容器的网络命名空间创建一个容器:

运行后,两个容器的 IP 地址相同。我想知道如何使用 docker remote api 或其他客户端 api 来做到这一点。

我的 docker 服务器和客户端版本是 1.10.3

0 投票
1 回答
4637 浏览

macos - 为 docker for mac 指定 ip 地址

我正在使用Docker for Mac Beta,它从聚光灯下运行。

有没有办法从控制台运行它或强制使用任何配置文件来指定 docker 主机的 IP 地址。

现在它从 192.168.64.3 更改为 192.168.64.5 (每个 docker 启动它可以有任何随机 IP)

可能我需要配置网桥接口?

有谁知道这是怎么做到的吗?