docker集装箱连接到networking设备
我正在尝试做一些docker集装箱来保存我的日常工具。 但是我的很多工具依赖于能够连接到设备(通过wifi)来提取数据。
我一直在做研究,而且很困惑,试图去理解为了支持这种情况,需要做些什么。 我知道通常docker集装箱是服务器而不是客户端。 但是我已经读到了相反的人。
我试图找出需要做什么样的更改/configuration。
默认情况下,docker将在你的物理服务器(如docker0
接口)上创build虚拟networking,这是一种bridge
模式,所以这个接口可以通过你的eth0
(物理系统接口)连接到互联网,与本地和全球networking有关的所有东西都将通过eth0
物理接口。
因此,如果您想在运行的docker容器中访问Internet或本地networking,则必须在启动docker守护进程期间根据物理系统/etc/resolv.conf
文件添加nameserver
。 所以你用物理系统访问的所有东西都可以通过docker container访问。
在Docker容器启动期间,您还需要公开一些端口,以便通过eth0
接口可以从外部dockernetworking中获取数据。 这些所有configuration在iptables
的帮助下自动处理.docker将添加iptables rules
并将docker0
stream量docker0
到eth0
并且您的所有服务都能正常工作。
例
docker run -it --name "$container_name" -d -h "$host_name" -p 9080:9080 -p 1522:1522 "$image_name"
所以在上面的情况下,我的应用程序是从oracle db
与端口1522
托pipe在另一台机器在networking和应用程序完美工作。 通过-p 1522:1522
将请求发送到物理机上的1522
端口,物理机将此请求发送到同一个1522
端口上的networking主机,并发生所有通信。
希望这是有道理的。
谢谢!