我有一个独特的 Docker 问题。我正在开发一个需要连接到多个 Docker 容器的应用程序。要点是,此应用程序将使用 Docker SDK 启动容器并根据需要连接到它们。
但是,由于应用程序的性质,我们应该假设这些容器中的每一个都受到损害并且不安全。因此,我需要将它们与主机网络分开(这样它们就无法访问我的设备和 WAN)。我仍然需要从我的应用程序连接到它们。
macOS networking stack doesn't support connecting to a docker network 是一个众所周知的问题.通常,我会通过公开我需要的端口来解决这个问题。但是,这对于我的应用程序是不可能的,因为我正在使用带有 Docker 的内部网络。
我想完成类似下面的事情。假设容器 2 和容器 3 在它们自己的私有(private)内部网络上。主机(不是容器)正在控制 Docker SDK 并可以查询其内部 IP。因此,它可以轻松连接到这些机器,而无需将此网络暴露给主机的网络。幸运的是,这种设置适用于 Linux。但是,我想提出一个适用于 macOS 的跨平台解决方案。
最佳答案
我也遇到过类似情况。我最终做的是:
-p 28003:80
)。localhost:<port>
(例如 localhost:28001
)。事实证明代码并不多,但如果你走那条路,请确保封装你引用容器的方式(即不要硬编码主机名和端口,使用生成字符串)。
总而言之,您确实应该使用 VM 部署选项进行一些测试,然后再将其排除为速度太慢。
https://stackoverflow.com/questions/65165332/