我有两个docker化的应用程序,它们是docker网络的一部分,并且都在8080端口上启动。我需要将它们都暴露在主机上,这就是为什么我将它们分别暴露给8080和8081。
app-1:
ports:
- "8080:8080"
app-2:
ports:
- "8081:8080"
我无法控制这些应用程序(无法更改它们的端口),它们只是端对端测试套件的一部分,需要运行它们才能执行测试。
问题::根据我在docker容器(同一docker-compose文件中的3d应用程序)或本地执行测试的方式,我必须使用不同的端口(8080或8081),因为请求可以在docker网络内或在主机上传输。这很不方便。
问题:是否有一种方法可以像在docker网络内部和外部使端口相同那样在compose文件中重新映射端口?例如,如果我可以使用docker网络内部的8081端口 来引用app-2
,那就太好了。
任何提示,我将不胜感激。
答案 0 :(得分:0)
我遇到了类似的问题,并使用以下方法解决了它。这是一个NodeJS-express应用程序。
docker cp
将文件复制到我的本地计算机上。使用docker cp
使用docker commit
在更新的端口上使用新提交的映像运行容器。