问题标签 [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 投票
1 回答
552 浏览

docker - 为 docker 容器指定 linux 接口

是否可以以某种方式指定 docker 容器应该使用哪个 linux 网络接口?我有多个接口,想为不同的容器使用不同的接口。

据我所知,我可以配置默认的 docker 网桥,但我无法为 docker 容器使用几个不同的网桥。

0 投票
1 回答
2984 浏览

docker - 如何链接多个 Docker 容器并封装结果?

我有一个连接到 Neo4j 数据库的 Node.js Web 应用程序。我想将这些封装在单个 Docker 映像中(也使用Neo4j Docker 容器),但我是 docker 新手,似乎无法弄清楚这一点。在最新的 Docker 版本中推荐的方法是什么?

我的直觉是运行嵌套在应用容器内的 Neo4j 容器。但从我读过的内容来看,我认为支持/推荐的方法是将容器链接在一起。这张图片很好地说明了我需要的东西。但是我不清楚图像来自哪里的文章。无论如何,它正在使用即将被弃用的遗留容器链接,而这些天推荐使用网络。教程或解释将不胜感激。

另外,docker-compose如何适应这一切?

0 投票
1 回答
1839 浏览

docker - Docker 链接容器、Docker Networks、Compose Networks - 我们现在应该如何“链接”容器

我有一个现有的应用程序,其中包含在同一主机上运行的 4 个 docker 容器。它们已使用link命令链接在一起。

但是,在对 docker 进行了一些升级后,该link行为已被弃用,并且似乎有所改变。我们现在遇到容器失去彼此链接的问题。

因此,docker 说要在ed 容器上使用新Network功能。link但我看不出这是如何工作的。

如果 2 个容器在同一个网络中,是否会ENV像链接一样自动在容器上公开相同的变量?

或者是否使用正确的容器名称/IP 地址更新了主机文件?即使在docker restart?

我在文档中看不到容器如何在其网络中找到另一个容器的位置?

此外,compose看起来有一个用于链接容器的简单设置,并且可能会自动执行其中的一些操作 - 组合是定义多容器应用程序的方式吗?还是在生产中运行它还为时过早?

是否compose也支持多主机配置?

在未来的某个时候,我们可能需要将其中一个容器移动到不同的主机......

0 投票
1 回答
485 浏览

linux - 无法在用户定义的网络上发现 docker 容器

由于我更新到 Docker 版本 1.10,我无法在用户定义的网络上找到其他容器。我无法 ping 连接到同一网络的新创建的容器。

我创建了一个名为“my_net”的网络。然后我创建一个带有标志的容器:“--net=my_net”并调用它:“first_container”。然后,当我为网络模式启动另一个具有相同标志的容器并启动对“first_container”的 ping 时,我收到错误消息:“bad message”。但是,如果我 ping 我可以从网络检查中读取的 IP 地址,我就可以 ping。

版本:

  • Docker 版本1.10.0,构建 590d5108
  • CentOS Linux 版本7.2.1511(核心)
  • 内核3.10.0-327.4.5.el7.x86_64

在以下序列中,您可以看到我在做什么。

谁能帮我?

0 投票
1 回答
2553 浏览

ubuntu - Ubuntu 上的 Docker 端口冲突

  • 我正在使用 Ubuntu 并尝试使用 Xdebug(PHP 调试器)配置远程调试以在 Docker 容器上工作。

    /li>
  • 我的容器暴露了 9000 端口(Xdebug 的工作端口)。

    /li>
  • 由于Ubuntu中的docker机器和真机是一样的,所以docker-proxy进程占用9000端口

    /li>
  • 我的 IDE(Sublime Text)无法启动调试会话,因为它还需要侦听端口 9000。

    /li>
  • 我尝试了另一个端口:

    在 Ubuntu 中:

    Docker容器内部:

    (它适用于端口 12345)

  • 我的docker-compose.yml

    /li>

Dockerfile将入口点设置为sh运行服务的脚本(php-fpm、nginx ...)。我docker-compose up用来运行容器。

我的问题是:

  • 在 Ubuntu 中使用 Docker 时是否需要公开端口?
  • docker-proxy如果继续侦听端口 9000 ,如何让我的 IDE 调试功能正常工作?
  • 我没有在容器中公开端口 12345,但为什么最后一个示例(netcat 和 telnet)仍然有效?
0 投票
1 回答
3715 浏览

networking - Docker 桥接网络,容器之间的 HTTP 调用非常慢(在 docker 升级之后)

服务器规格:

刚刚从 1.9 升级到 1.10 并添加了 docker-compose(但是还没有使用 compose)。升级之前没有出现缓慢问题。

Docker 也配置了我的 DNS IP 和代理,就像在“/etc/default/docker”中一样

我的 ip 在那里完全拼写出来,只是用 X 来提问

我有两个容器(container_a、container_b)都运行 HTTP 服务器(Node.js),两个容器都运行在我通过以下方式创建的桥接网络(--net=mynetwork)上:

这两个容器使用 container_name 作为 HTTP 调用的“主机”在彼此之间进行 HTTP 调用,如下所示:

通过 docker bridge 网络在两个容器之间进行的这些调用需要很长时间才能完成(约 5 秒)。这些调用通常在 100 毫秒内运行。

当我在这些容器上从 --net=mynetwork 更改网络并将它们都作为 --net=host 运行时,同时修改我的 http 调用以使用“localhost”作为主机而不是容器名称并通过暴露它们的端口-p 标志... 调用在 < 100 毫秒的预期时间内运行。

看来 docker bridge 网络导致我在容器之间的调用需要很长时间。

关于我可以在哪里诊断/纠正这个问题的任何想法?

0 投票
2 回答
1833 浏览

python - docker-py:在启动容器之前连接到网络

直到最近,我可以在启动容器之前将容器附加到网络,如下所示:

但是,现在我总是得到一个错误,因为当我将它连接到网络时容器还没有启动:

我可以使用命令行客户端重现相同的错误:

所以我需要在创建容器的时候直接将容器连接到网络:

docker-py中,如何在创建过程中直接将容器附加到网络?

0 投票
1 回答
1574 浏览

docker - 连接到 Docker 容器失败

这是我运行 docker 容器的方式 -

容器操作系统 - Ubuntu 14.04 LTS

现在,由于我已将容器的 4444 映射到机器的容器,因此我尝试连接 -

现在我进入外壳 -

成功进入,我尝试获取机器的IP地址。

现在我从容器中出来,并尝试通过提供在 ifconfig 中找到的容器的 IP 地址从运行容器的机器连接到容器 -

有人可以解释一下吗

  1. 为什么我无法连接到机器?

  2. 我该怎么做才能连接到机器?

我正在运行一个仅安装 ubuntu 14.04 并公开 2 个端口的裸容器。没有什么花哨。

谢谢。

0 投票
3 回答
11935 浏览

docker - 如何让其他网络机器通过IP访问Docker容器?

我需要创建一些必须由同一网络中的其他计算机访问的 docker 容器。

问题是当我创建容器时,Docker 获取的 IP 地址仅在主机内有效。

我已经查看了 Docker 文档(网络),但没有任何效果。

如果我ifconfig在我的机器上运行,我的 IP 地址是172.21.46.149. 当我进入容器(Ubuntu)并运行ifconfigIP 地址时172.17.0.2。例如,我需要 Docker 来获取172.21.46.150.

我该怎么做?

0 投票
5 回答
26953 浏览

docker - Docker 1.10 通过主机名从主机访问容器

我有带有嵌入式 DNS 服务的 Docker 1.10 版。

我在 docker-compose 文件中创建了两个服务容器。它们可以通过主机名和 IP 相互访问,但是当我想从主机访问其中一个时,它不起作用,它仅适用于 IP,但不适用于主机名。

那么,是否可以通过 Docker 1.10 中的主机名从主机访问 docker 容器?

更新:

码头工人-compose.yml

然后我通过命令启动它:docker-compose up --force-recreate

当我运行时:

  • docker exec -i -t docker_a ping -c4 docker_b- 有用
  • docker exec -i -t docker_b ping -c4 docker_a- 有用
  • ping 172.19.0.2- 它有效(172.19.0.2docker_b的 ip)
  • ping docker_a-失败

结果docker network inspect test_default