当前位置: 首页 > 面试题库 >

让Docker容器连接到网络设备

郑安晏
2023-03-14
问题内容

我正在尝试制作一些docker容器来存放我的一些日常工具。但是我的许多工具都依赖于能够连接到设备(通过wifi)以提取数据。

我一直在做研究,但很困惑,想了解要支持这种情况需要做什么。我知道通常docker容器是服务器而不是客户端。但是我读过关于人们做相反的事情。

我正在尝试找出进行此操作所需的更改/配置类型。


问题答案:

默认情况下,Docker将在您的物理服务器上创建一个虚拟网络。例如docker0界面。这是在bridge模式下发生的,它允许该接口通过您的eth0设备连接到Internet
eth0是物理系统接口;与您的本地以及全球网络相关的所有内容都将通过eth0物理接口传递。

如果要访问正在运行的Docker容器中的Internet或本地网络,则必须在docker守护程序启动期间nameserver根据物理系统/etc/resolv.conf文件进行添加。这样,您通常可以通过物理系统访问的所有内容都将可以通过docker容器访问。

还有一件事,您必须在启动docker容器时公开端口,以便它可以在该eth0接口的帮助下从docker网络外部提取数据。在的帮助下,所有这些配置都会自动进行iptables。Docker将添加iptables rules转发流量docker0eth0的服务,您的服务将完美运行。

docker run -it --name "$container_name" -d -h "$host_name" -p 9080:9080 -p 1522:1522 "$image_name"

在上述情况下,我的应用程序正在$host_name通过port 提取数据1522-p 1522:1522表示它将请求发送到1522物理计算机上的端口,类似地,物理计算机会将请求发送到同一1522端口上的网络托管计算机。”



 类似资料:
  • 问题内容: 我目前使用Docker Swarm和Consul设置了3个EC2实例。我有3个简单的节点应用程序分布在所有3个实例上,然后使用nginx在我的集群主机上进行路由。 使用覆盖网络指南,我创建了一个名为的新覆盖,并使每个容器都连接到该网络。使用I可以确认每个节点容器和nginx容器都已连接并具有IP。但是,在进入我的nginx容器后,它只能通过网络与位于同一主机上的节点应用程序通信,而不能

  • 本文向大家介绍Docker 将容器添加到网络,包括了Docker 将容器添加到网络的使用技巧和注意事项,需要的朋友参考一下 示例 此命令将myAwesomeApp-1容器连接到app-backend网络。将容器添加到用户定义的网络时,嵌入式DNS解析器(它不是功能齐全的DNS服务器,并且不可导出)允许网络上的每个容器解析同一网络上的其他容器。此简单的DNS解析器在默认网桥bridge网络上不可用。

  • 我拉出了mysql docker映像,并用命令运行容器: 此时,springBoot在本地工作。它与MySQL连接: 现在,我希望springBoot应用程序也在单独的docker容器上,在同一服务器上。为此,我使用了DockerFile: 同样,它无法连接到数据库:

  • 我有一个依赖于多个docker容器的应用程序。我使用docker撰写,以便所有容器都在同一个网络中进行容器间通信。但是,我的两个容器在各自的容器中监听相同的端口8080,但是映射到主机上的不同端口: 8072,8073。对于集装箱间的通信,因为我们使用集装箱的端口,这会引起问题吗? 限制条件: 我需要两个容器才能运行我的应用程序。因此,我无法将具有相同内部端口的其他容器隔离到不同的网络 所有容器都

  • 我的数据库连接是用下面的类处理的: 这是我的spring boot控制器 下面是我的dockerfile: 我读了这里和这里提到的解决方案。也阅读了一些教程,但我无法将这些解决方案中的任何一个适合我的代码。在我的代码中,我应该在哪里更改?