让docker容器连接到网络设备

时间:2017-04-18 06:47:12

标签: docker

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

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

我试图找出执行此操作所需的更改/配置类型。

1 个答案:

答案 0 :(得分:1)

默认情况下,Docker将在物理服务器上创建虚拟网络;例如docker0界面。这种情况发生在bridge模式下,它允许此界面通过您的eth0设备连接到互联网。 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_name1522提取数据。 -p 1522:1522表示它会将请求发送到物理计算机上的端口1522,类似地,物理计算机会将此请求发送到同一1522端口上的网络托管计算机。"