gpt4 book ai didi

docker - 是否可以将 docker 端口暴露给特定接口(interface)

转载 作者:行者123 更新时间:2023-12-02 18:15:06 27 4
gpt4 key购买 nike

我的服务器有两个网络接口(interface),eth0 和 wlan0,一个连接到互联网,另一个连接到内部网络。当前使用 docker-compose 将 Docker 容器端口暴露给特定接口(interface)的解决方案是使用:

version: '2'

services:
mosquitto:
ports:
- "192.168.0.1:1883:1883"

这使得它变得脆弱,因为 IP 地址是通过 DHCP 分配的。使用了多个设备,其中每个设备可能具有不同的 IP 地址。因此,是否可以仅将端口暴露给特定接口(interface)?此外,一切都在 Resin.io 上运行, 限制 iptables 和 co 的配置。

最佳答案

您可以解决上述两个阻止程序中的任何一个:

关于动态 DHCP IP,您可以按照 resin.io 指南设置静态 IP:https://docs.resin.io/reference/resinOS/network/2.x/#setting-a-static-ip .设置静态 ip 后,您应该可以在 ports 配置中使用它。

另一种选择是在您的 mosquitto 应用程序容器中使用 iptables。这可以通过以下方式实现:

a) 为 mosquitto 服务设置 network_mode: hostprivileged: true 设置

b) 安装 iptables 作为 Dockerfile 中 RUN 指令的一部分(例如 RUN apt-get update && apt-get install iptables )

c) 配置 iptables(例如 iptables -A INPUT -i eth0 -p tcp --destination-port 1883 -j DROP 以断开与 wlan0 上端口 1883 的连接> 接口(interface))

作为旁注,我鼓励您查看我们的社区论坛 (https://forums.resin.io),了解您可能遇到的任何 resin.io 问题。我们的用户群在那里非常活跃,很可能会有更多人向您提出类似的问题或有用的建议。

谢谢!

关于docker - 是否可以将 docker 端口暴露给特定接口(interface),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50304842/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com