我正在尝试制作一些泊坞容器来装载我的日常工具。但是我的很多工具都依赖于能够连接到设备(通过wifi)来提取数据。
我一直在做研究,我很困惑,试图理解为支持这种情况需要做些什么。我知道通常docker容器是服务器而不是客户端。但我读过人们正在做相反的事情。
我试图找出执行此操作所需的更改/配置类型。
答案 0 :(得分:1)
默认情况下,Docker将在物理服务器上创建虚拟网络;例如docker0
界面。这种情况发生在bridge
模式下,它允许此界面通过您的eth0
设备连接到互联网。 eth0
是物理系统接口;与本地和全球网络相关的所有内容都将通过eth0
物理接口。
如果要在正在运行的docker容器中访问Internet或本地网络,则必须在启动docker守护程序期间根据物理系统nameserver
文件添加/etc/resolv.conf
。通过这种方式,您可以使用物理系统正常访问的所有内容都可以通过docker容器进行访问。
还有一件事,您必须在启动docker容器时公开端口,以便它可以在eth0
接口的帮助下从docker网络外部提取数据。在iptables
的帮助下,所有这些配置都会自动完成。 Docker会添加iptables rules
来转发从docker0
到eth0
的流量,您的服务将完美运行。
示例强>
docker run -it --name "$container_name" -d -h "$host_name" -p 9080:9080 -p 1522:1522 "$image_name"
在上述情况下,我的应用程序通过端口$host_name
从1522
提取数据。 -p 1522:1522
表示它会将请求发送到物理计算机上的端口1522
,类似地,物理计算机会将此请求发送到同一1522
端口上的网络托管计算机。"