gpt4 book ai didi

docker - 无法设置网络以从外部访问Docker容器IP?

转载 作者:行者123 更新时间:2023-12-02 19:07:06 37 4
gpt4 key购买 nike

上下文:
我有一台托管用户界面的Web服务器,用户可以从中请求产品的仿真器实例。每个仿真器实例都是在nodejs上运行的Web应用程序。当用户从UI请求仿真器实例时,我产生了一个docker容器。我想向用户返回一个可以从其访问此仿真器容器的IP地址(+端口)。
注意:目前, docker 和面对用户的网络服务器正在同一系统上运行。

问题:
1)只能使用主机上的本地IP地址访问docker0网络上的默认容器。例如http://172.17.0.5。我无法使用http://localhost:32768访问容器(容器从-P启动,并被分配了端口32768)。我收到一条消息,指出无法访问该网站。

2)我不能使用docker主机网络驱动程序,因为模拟器内部使用了我不想在主机网络中公开的端口

3)我不想使用macvlan驱动程序,因为我将使用太多IP。

是否可以将主机上的各个端口映射到docker0子网中的IP?如果是,我该如何处理?如果可能的话,我可以向用户公开主机IP和特定于容器的端口。

使用户访问容器的最佳方法是什么?

最佳答案

充当代理的nginx容器怎么样?使您的容器始终具有相同的名称。

服务新的应用实例:

docker run -d --rm --name=static_prefix__unique_id your_image

具有通配符域:
unique_id.yourdomain.com

或者简单地:
yourdomain.com/unique_id

您可以动态代理请求(我假设您为nodejs应用使用端口3000):
proxy_pass http://static_prefix__$extractedNameFromRequestUri:3000

Docker将为您完成艰苦的工作,并将流量从外部路由到 static_prefix__unique_id容器。

关于docker - 无法设置网络以从外部访问Docker容器IP?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48824895/

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