问题标签 [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 回答
799 浏览

docker - 在 docker-compose 应用程序和其他容器之间在 docker swarm 上创建网络

所以,假设我有一个部署到 Docker Swarm 的应用程序,它有一个看起来像这样的 compose 文件:

也许我想部署几个这样的应用程序,它们通过 rabbitmq 容器进行通信。我想我可以像这样在 swarm 上创建一个网络:

然后我可以像这样配置一个 rabbitmq 实例:

然后部署我的应用程序:

但是,看起来应用程序无法达到“兔子”。

应用程序可以看到在同一个 compose 文件中定义的服务(如上所示),但它们无法看到除此之外的服务。

如何在同一网络上获取所有应用程序?

编辑 1 我也尝试将撰写文件更改为:

0 投票
5 回答
41078 浏览

docker-compose - Docker 撰写 yml 静态 IP 寻址

我有这样的 docker-compose.yml (这里不是完整列表):

docker-compose up我收到这样的错误后:

仅当连接到具有用户配置子网的网络时,才支持用户指定的 IP 地址

所以我正在创建子网docker network create --gateway 172.16.1.1 --subnet 172.16.1.0/24 app_subnet

但这并不能解决问题,因为 docker-compose 会即时创建名为 dev_app_subnet 的子网。而且我的子网没有使用 - 我遇到了同样的错误。这样做的主要目的是为 nginx 服务分配静态 IP - 从 etc/hosts 文件中打开我的项目 web url。

0 投票
1 回答
4302 浏览

docker - Docker 主机网络不工作

我真的很困惑这个问题。我在我们的内部网络中有两台计算机。两台计算机都可以 ping 内部服务器。两台计算机都有相同的 docker 版本。docker run -it --rm --name cont1 --net=host java:8我在两台计算机上使用命令运行简单的 docker 容器 。然后 ssh 进入容器并尝试 ping 内部服务器。其中一个容器可以 ping 内部服务器,但另一个容器无法访问任何内部服务器。

怎么可能?你对此有什么想法吗?

谢谢

0 投票
2 回答
8240 浏览

nginx - 仅将 docker swarm 模式端口发布到 localhost

我创建了 docker swarm,在 swarm 内部有一个网站,在外部发布端口 8080。我想使用在端口 80 上运行在 swarm 外部的 Nginx 来使用该端口,这将执行服务器名称解析和托管静态文件。

问题是,swarm 使用 iptables 自动将 8080 端口发布到互联网,我不知道是否可以只允许本地 nginx 实例使用它?因为目前用户可以通过 80 和 8080 端口访问站点,第二个端口坏了(没有图像)。

尝试玩ufw,但它不起作用。手动更改 iptables 也将是一场噩梦,因为每次更新后我都必须在每个 swarm 节点上都这样做。有什么解决办法吗?

编辑:我不能对 swarm 和 swarm 外的 nginx 使用相同的网络,因为覆盖网络与普通的单主机容器不兼容。从理论上讲,我可以将 nginx 放到 swarm 中,但我更喜欢将它分开,放在包含静态文件的同一主机上。

0 投票
1 回答
671 浏览

postgresql - 无法连接到 localhost 上的 dockerized postgres,但远程连接正常

我创建了 docker postgres 实例

我可以使用公共服务器 ip 从其他主机正确连接到该数据库,例如。

但是如果我想在运行容器的同一主机上执行此操作,则无法连接(它只是挂起)。

我的 pg_hba.conf(容器内)

在 postgresql.conf 里面有一行:

iptables 的相关行:

此外,如果我使用 172.19.0.2 地址,它可以在本地工作,但如果我使用公共服务器 IP,它就会挂起。我不知道为什么会这样。我的应用程序分布在许多主机中,包括一个带有 DB 的主机,并且我不想根据位置使用其他地址。有人可以帮忙吗?

0 投票
0 回答
1300 浏览

windows - 如何从外部世界(如父 Windows 主机)访问 docker 容器服务

作为“如何从外部世界(如父 Windows 主机)访问 docker 容器服务”的一部分

我按照以下步骤操作:

1) 在 windows machine(10.204.255. /16) 上,我创建了 vagrant VM (172.17.0. /24) 。在 vagrant VM 中,我根据自己的要求创建了不同的 docker 镜像。

2) 作为 docker 镜像创建的一部分,创建 centos:6.6 镜像并在其中运行已安装的 ACE-TAO 服务。

3)TAO服务运行正常,并且绑定了特定的容器ip:特定端口(如172.17.0.10:13021)

参考:能够创建镜像并运行镜像以创建容器并安装TAO rpm和成功运行的TAO服务。问题就像我无法从外部世界 ping 这个 ip,比如从我的 Windows 机器

我在这里附上我的 dockerfile

我相信这是 docker 的常见用例,就像:如果我们尝试使用 ip:port 访问,可以从主机访问已安装在 dockerized 容器上的服务

ACE-TAO 的行为就像 rpm 安装到特定主机,所以我们可以从这个 url 访问 corba 服务:corba://(tao_service_runnig_ip):(listening port) 为了满足这个要求,我需要从主机访问

0 投票
0 回答
333 浏览

docker - 如何从外部网络访问 docker-container-ip:docker-container-port

我正在以下列方式运行 docker setup

1) 在运行 vagrant 脚本的 Windows 上,在我的本地 VM 上安装 ubuntu14.04

2) 在运行 docker 容器的 VM 之上

在这里,我的担忧就像

我的 Windows 机器子网不同(如 10.204.255.*/16)

我的虚拟机子网不同(10.0.2.*/16)

我的 docker 容器子网与 (172.17.0.*/24) 不同

如果我想访问 VM 级别的特定容器服务,我可以使用它们指定 VM-ip 或 localhost:forwardind-port/ ;听起来不错
如果我想从 Windows 机器访问它会以与转发端口相同的方式工作

但是从 windows 机器上,如果我想像 container-ip:container-port/ 一样访问如何实现呢?

为什么我需要这样访问,在我的容器中我正在运行 corba 特定服务,我们可以通过运行 container-ip n 端口的特定服务访问这些服务

0 投票
1 回答
831 浏览

docker - 如何公开在 docker 容器内运行的服务,绑定到 localhost

我有一个在 docker-container 中运行的服务,默认情况下它只绑定到 localhost。

我可以重新配置/重新编程此服务以绑定到所有接口,但这可能在其他上下文中具有安全隐患。有没有办法在 docker 容器内公开绑定到 localhost 的服务?

0 投票
1 回答
12094 浏览

linux - Docker DNS 设置

我尝试使用自定义网络和 dos 设置创建 docker 容器。

docker network create --driver=bridge --opt "com.docker.network.bridge.enable_ip_masquerade"="true" --opt "com.docker.network.bridge.enable_icc"="true" --opt="com .docker.network.driver.mtu"="1500" --opt="com.docker.network.bridge.host_binding_ipv4"="0.0.0.0" 网络

--

docker run --dns 10.0.0.2 --network=net busybox cat /etc/resolv.conf

名称服务器 127.0.0.11 选项 ndots:0

否则,如果我使用标准网络一切正常

docker run --dns 10.0.0.2 --network=bridge busybox cat /etc/resolv.conf

名称服务器 10.0.0.2

0 投票
1 回答
831 浏览

networking - 具有不同网络接口的 Docker 容器

问题:我想在 Docker 容器中运行多个 VPN 服务器,每个服务器都有自己的公共 IP。

使用 -p 参数,我可以分别连接到每个接口,但我看到的公共 ip 是 eth0 接口,而不是我想要的接口(eth0:1),所以我如何创建一个使用的新 docker0 接口eth0:1 作为流量接口?

最好的问候和感谢。