问题标签 [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.
docker - Docker“主机”和“无”网络有什么用?
试图了解 Docker 网络。Docker 自动创建以下网络:
我知道桥接网络代表所有 Docker 安装中存在的 docker0 网络,参考链接。
如果可能的话,有人可以帮助我理解其他网络、主机和无网络吗?
docker - 如何从 Windows 中的 Docker 容器访问“http://localhost”?
我有一组使用 Docker 在 Windows 10 中运行的容器,这是以下内容的输出docker-compose ps
:
这是输出docker inspect
:
我正在尝试访问http://localhost
,但我不能。我也尝试过使用容器 IP 的含义http://172.18.0.3
,但也不起作用。
当我说我不能时,这意味着以下消息:
无法访问此站点 172.18.0.3 响应时间过长。
相同的容器在 Linux 中完美运行。
这是c:\Windows\System32\drivers\etc\hosts
文件的内容:
容器中的端口映射到docker-compose.yml
文件中的主机:
我在这里缺少什么?
docker - Docker 公开指向主机的链接
我正在为应用程序服务和数据库服务使用docker-compose.yml文件:
应用程序服务使用以db-service作为主机的连接字符串连接到数据库:
这在正在运行的应用程序容器上运行良好,但我还需要使用主机上的相同连接字符串访问数据库。(用于开发期间的数据库迁移)
我考虑过为我的主机添加一条路由:
db-service -> localhost但这不是一个好的解决方案,因为它取决于主机操作系统。我尝试在连接字符串中使用localhost,因为我的主机然后连接到数据库容器。但显然应用程序容器将不再连接。
我还在撰写文件中使用了network_mode设置和网络驱动程序,但没有运气。
如何在容器中使用相同的主机名,就像在我的主机中一样?
bash - Docker 断开所有容器与 docker 网络的连接
我有码头网络“my_network”。我想删除这个 docker 网络docker network rm my_network
。在此之前,我应该断开所有容器与该网络的连接。我可以使用docker network inspect
并获得类似的输出
如果我只有几个容器,可以手动断开连接,但如果我有 50 个容器,我就会遇到问题。如何使用单个或多个命令断开所有容器与该网络的连接?
docker - Docker Swarm 服务网络
对于 DevOps 大学项目,我们的任务是使用 docker 和 Jenkins 等构建 Web 视频流服务。我们完全可以自由支配我们的工作方式...... Swarm 看起来很有趣,所以我想我会给它一个去(因为它进行复制可能会给我一些奖励积分)。
我的背景是数据(python 很有趣),所以服务器和网络等不是我的强项。此外,这一切都是在我的机器上本地完成的。
我正在努力与实际的 docker 服务进行通信(softinstigate/restheart 图像与 Mongodb 服务进行通信)。
它在两台 docker 机器上复制。然后连接到本地网络,本地网络又连接到另一个“代理”覆盖网络。
那么,如何连接到特定的 restheart api 服务以获取 HTML 页面的一些数据?普通容器构建等将是 localhost:chosenport。但我相信 docker-machines 是不同的 IP 地址?端口号是怎么定义的?
本质上,一个人如何从一个网站页面连接到一个群体中的特定服务?
我找到了几篇文章可以通读,但当时无法理解。想我可能已经尝试将 localhost 地址更改为领导群节点的 IP 地址,这似乎不起作用(但这是不久前的事了)。
用于设置的 Docker 命令在我的手机上运行。
networking - 为什么 Docker/Containers 有自己的网络概念(CNM/CNI)而不是使用 VM 网络?
我最近在阅读一篇关于容器网络概念的文章,其中解释了 CNM(容器网络模型)和 CNI(容器网络接口)模型。
出现了两个问题:
- 为什么我们有这样的容器网络设计(CNM/CNI)?
- 为什么我们不继续使用虚拟机网络方案,我们只是将不同的虚拟机连接到主机 OVS,同时有一个控制器来更新流表?
docker - Docker 外部可路由容器
如何在单个 VM 上创建可外部路由的 docker 容器?
这是我的困境......我正在尝试设置在 Ubuntu 16.04 VM 上运行的 1..n 容器,这些容器提供了一个唯一的外部可路由 IP 地址,并允许每个容器侦听相同的端口(避免主机上的端口冲突)。
我已经沿着将 IP 地址添加到 NIC 的路线,然后将它们分配给各个容器,这可行,但这是一个相当麻烦的解决方案。我还尝试实现一个 MACVlan Docker 网络,认为它可以解决这个问题,但是没有一个容器可以到达网络外部(即无法在容器和另一个虚拟机之间 ping)。从我读到的有关 MACVlan 的内容中,我了解到容器无法与主机通信,但我认为它们能够访问同一子网/网络上的其他系统。使用 MACVLan,容器可以相互通信。
是否有人对我正在寻找的那种实现有可能的解决方案,或者我是否坚持将 IP 地址添加到 VM 的 NIC?
docker - docker-compose:网络和链接之间的区别
我正在学习码头工人。我看到这两个术语让我感到困惑。例如,这里是一个定义了两个服务的 docker-composeredis
和web-app
.
该docker-compose
文件定义了一个名为 lognet 的桥接网络,所有服务都将连接到该网络。据我了解,此操作使这些服务可以看到其他服务。那么为什么在上述情况下应用服务仍然需要链接到redis服务。
谢谢
windows - Windows 上的 Docker:如何使用容器 IP 从主机连接到容器?
我有
- 视窗 10
- Docker for Windows V. 1.12.5 Rev. 9503,不再依赖 boot2docker 或 VirtualBox。
我有许多在 Docker 映像中运行的 JBoss 实例(172.18.0.2 是一个数据库):
- 实例1:名称:jboss-eap,IP:172.18.0.3
- 实例 2:名称:jboss-eap-arquillian,IP:172.18.0.4
应同时运行。每个 JBoss 实例都导出其 8787、8080 和 8443 端口等。
我还创建了一个桥接网络: docker network create --driver bridge --subnet 172.18.0.0/24 bridged_network
目前,我已经设置了一个本地端口转发,以便主机可以使用前缀访问各种服务(例如,当访问实例 1 的端口 8080 时,主机使用 localhost:28080 进行连接)。但这很容易出错。
现在,我想使用容器的 IP 从主机访问这些端口,例如调用 172.18.0.4:8080(下一步:使用主机名:jboss-eap-arquillian:8080)。虽然这在容器之间运行顺利,但我无法将其设置为从主机连接。
有 Windows 网络接口(类型:DockerNAT),IP 为 10.0.75.1,但我可能手动创建了它(不确定......现在已经尝试了很长时间)。但这在将容器的端口绑定到此设备时很有帮助,例如 docker run ... -p 10.0.75.1:8080:8080。然后我可以使用 10.0.75.1:8080 调用该服务,但这对第二个容器没有帮助。
我也尝试过使用 Docker 的主机网络设备,但那是一个。似乎只适用于一台机器 b. 我无法静态设置运行静态配置的 JUnit 测试所需的 IP。注意:我不能依赖网络 DHCP 在启动时分配 IP,因为我经常更改我的网络(因此 DHCP),导致再次出现不固定的 IP。
所以基本上我正在寻找一种方法来设置网络/容器,我可以使用容器 IP(例如 172.18.0.3 例如 1)调用容器提供的服务(例如在端口 8080 上)从使用 172.18.0.3:8080 的主机。