微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

Docker-Compose - 在主机网络上为容器提供一个 IP,并允许容器到容器连接和主机网络连接

如何解决Docker-Compose - 在主机网络上为容器提供一个 IP,并允许容器到容器连接和主机网络连接

我有几个容器在由 docker-compose 控制的堆栈中运行。 其中有一个运行 node-red。

节点红色容器需要能够在网络中搜索主机网络 (192.168.1.0/24) 上的设备。

使用认网络,容器在知道 IP 时可以 ping 并连接到主机网络,不幸的是,node-red 实现只扫描本地网络,而且它只有 docker 桥接网络(172...)所以它只在那里搜索

我尝试了多种 docker 网络设置组合来尝试让容器将 192 网络视为本地网络。当我能够获得 192 网络地址时,容器无法 ping 外部(到主机)网络上的其他主机。

TLDR:Docker 容器需要能够看到其他 Docker 容器,并且在主机网络上也有一个 IP 地址,并且能够连接到主机网络上的其他服务。

解决方法

好的,我找到了一个适合我的解决方案:

在 docker-compose.yml 中

const [posts,setPosts] = useState([])
const [thumbsNumber,setThumbsNumber] = useState({})

const thumbsUp = (id) => {
  console.log('Clicked thumb: ',id)
  setThumbsNumber(thumbs => ({
    ...thumbs,[id]: (thumbs[id] ?? 0) + 1
  }))
}


return (
  <div>
    {posts.map((post,index) => (
    <div key={index} style={{ marginBottom: '10px' }}>
      <p style={{ float: 'right' }}>{thumbsNumber[post.id] ?? 0}</p>
      <ThumbUpAltIcon className="thumbsUpBtn" onClick={()=> thumbsUp(post.id)} >
      </ThumbUpAltIcon>
    </div>
    ))}
  </div>
)

添加 app: image: youimage network_mode: "host" 正是我所需要的

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。