问题标签 [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 容器添加接口以加快连接速度?
我有一段时间遇到这个问题我不知道如何解决它。我有一个运行 PHP+Apache 和应用程序的 Docker 容器。MySQL 和 MongoDB 服务器与主机位于同一网络上。所以:
- MySQL数据库服务器IP: 192.168.1.98
- Mongo DB服务器IP: 192.168.1.98
- 主机: 192.168.1.90
由于某种原因,运行在容器上的应用程序和数据库服务器之间的连接非常缓慢,有时运行长查询需要超过一分钟。
我可以说问题不在于数据库服务器,因为在同一台服务器上运行相同的应用程序运行速度很快,所以我认为这与网络有关,但我不确定是什么或为什么。
有人可以给我一些建议吗?
docker - Docker:将 VPN 限制为单个容器
我的 docker 主机有多个网卡,虽然是同一个网络
- Card1: 192.168.0.50
- Card2: 192.168.0.55
我从容器 1 连接到 VPN,但不是从容器 2。
在容器 1 上连接 VPN 后,两个容器都有新的 IP。
有没有办法将 VPN 限制为仅单个容器而不影响另一个容器?
docker - 访问 Docker 容器内的微服务?
我有一个 Dropwizard 微服务在端口的容器中运行9000
。
在 Dockerfile 中,我像这样暴露了端口
然后我像这样运行容器
docker run --add-host="localhost:10.0.2.2" -t foo-service
但是,当我尝试访问它时,localhost:9000
我没有在浏览器中得到响应。
如何从 Docker 主机访问微服务?
Docker 主机是 Ubuntu 16.04
非常感谢
docker - Docker 组合网络和“内部”属性示例
我试图在 docker-compose.yml v2 中找到使用网络声明的“内部”属性的示例。
换句话说,我搜索如何做到这一点:
但在 docker-compose.yml 中。
尝试使用此变体时出现错误:
错误信息:
docker - docker从容器连接到主机隧道
我想从我的 docker 容器内部与使用主机中的隧道的 postgres db 连接。在主机中,我有一个指向数据库主机的隧道:
隧道设置为:
从主机我可以启动 psql 命令:
由于我使用的是网络模式BRIDGE [我不能使用HOST,因为 docker 没有正确地将容器端口公开给主机,请参见:https ://github.com/docker/compose/issues/3442 ] 我读到我必须使用容器ip:
在这种情况下是172.17.0.1
但是,当我进入容器时:
我尝试连接我有:
有什么我想念的吗?
docker - Docker:无法打开从容器到主机的端口
我正在使用Docker for Mac
. 我有一个运行服务器的容器,例如我的服务器在端口 5000 上运行。我已经在Dockerfile
当我的容器运行时,我连接到该容器并通过运行以下命令检查该服务器是否正常工作,并查看它是否返回数据(一堆 html 和 javascript)
注意,我启动这个容器并通过命令在外部发布端口:
但是在 docker 主机(是我的 mac 并且正在运行 El Capitan),我打开 chrome 并转到 address localhost:5000
。它不起作用。请注意,如果我转到任何任意端口,例如localhost:4000
我看到来自 chrome 的错误消息,例如:
但错误信息localhost:5000
是:
所以看来我已经“稍微”配置了工作,但出了点问题。请告诉我如何解决这个问题。
docker - 无法解析 docker 容器之间的主机名
我在单独的撰写文件中创建了两个容器(用于应用程序隔离——每个应用程序可能在撰写文件中定义了多个容器,例如后备数据库)。
这些容器通过名为“common”的外部网络链接。
一个示例撰写文件将是:
码头工人版本:
公共网络是使用以下方法创建的:
然后我使用以下方法启动容器:
检查我得到的网络:
其他容器因无法解析“rabbitmq”主机名而崩溃。检查崩溃的容器表明它们在同一个网络上:
如果我登录到一个没有尝试访问 rabbitmq 容器并且没有崩溃的容器,则主机名不会解析。但是,rabbitmq 容器的 ip 地址是可以访问的。
登录到 rabbitmq 容器时:
关于如何解决这个问题或我应该检查的事情有什么建议吗?
更新 1
- 我已尝试添加
external_links
,但问题仍然存在,并且没有/etc/hosts
为外部主机名“rabbitmq”添加任何条目
docker - 带有自定义网络的 Docker swarm
我正在尝试研究如何在 Docker 中正确使用 swarm 模式。首先,我尝试在我的 2 台工作人员和经理机器上运行容器,而不指定自定义网络(所以我使用默认的入口覆盖网络)。但是,如果我使用入口网络,由于某种原因我无法解析tasks.myservice
.
所以我尝试像这样配置自定义网络:
所以现在,当我bash
进入其中一个容器时,我可以成功解析tasks.myservice
,但我无法再访问我在--publish
外部创建服务中定义的端口(当我使用入口网络时可以访问)。
有没有办法:
使用入口网络并能够解析
tasks.myservice
或任何其他将指向我所有服务容器的 DNS 记录?或者,使用自定义网络,但
--publish
端口正确,以便我可以从外部访问它们?
编辑
这就是我创建服务的方式,
没有自定义网络:
使用自定义网络:
docker - mac 上的 Docker --add-hosts 选项并没有真正添加主机
我在 macOS sierra 上运行了 docker 1.12.3。
我需要我的服务器在 hosts 文件中设置多个 ips,并将容器主机名设置为解析为 127.0.0.1。
我有以下命令
所以主机名确实更改为 myHostName,并添加到主机文件中。但是,它什么也没做!尝试在我的服务器中使用它,甚至只是执行 ping myHostName resolve in
从文档看来它应该可以工作,但事实并非如此。我真的需要它,我没有更多的想法如何解决它。
请帮忙。