如何在交互模式下运行docker-compose容器,以便其他容器可以看到它?
场景:我在代码中设置了一个断点,它被挂载(作为一个卷)到由docker-compose创build的容器中。 代码是一个odoo模块,所以它是odoo容器的一部分。
还有一个webapp容器,它有一个链接到odoo为了使用API。
odoo容器不公开API端口,因为主机不需要它; webapp容器当然可以看到它。
services: odoo: volumes: - localpath:/mnt/extra-addons-bundles webapp: links: - odoo
当然,断点的目的是让我控制应用程序 – 所以我需要一个TTY附加。 我可以用docker-compose run --rm odoo
。 但是,当我这样做的时候,它会创build一个新的容器,所以Web应用程序从来没有真正击中它。 另外,它并不告诉我新的容器是什么,所以我必须手动弄明白这一点。
我可以使用docker docker exec
在odoo容器中运行另一个odoo,但是必须在新的端口上运行它,从而将webappconfiguration更改为使用这个新的实例。
有没有办法实现我想要的,即以交互模式运行odoo容器,以便webapp容器可以看到它,而不需要重新configurationwebapp容器?
答案是在docker-compose文件中使用tty: true
,然后docker attach
来实际获得连接到你的terminal的进程。
试试这个,看看它是否工作
services: odoo: volumes: - localpath:/mnt/extra-addons-bundles tty: true stdin_open: true webapp: links: - odoo
我还添加了stdin_open
以防万一你需要它,如果你不只是删除它
编辑-1
另外,如果您需要连接到正在运行的容器,则需要使用docker-compose
docker attach
作为docker-compose
没有该function
docker attach <containername>
- docker-machine env错误:无法find或加载主类mindbright.application.MindTerm
- docker:来自守护进程的错误响应:驱动程序无法编程端点redis上的外部连接
- 在使用Docker-Compose时,使用JPDA远程debugging将不会通过eclipse连接到Tomcat
- .Net Core Clrdebugging器VSDBG在Windows Docker容器中连接到远程进程时暂停应用程序
- Golang远程debugging器与vscode
- 使用Mocha + TypeScript + Docker远程debuggingnode.js。 debugging器不反映实际的执行?
- 如何用IntelliJdebugging在Docker中运行的应用程序?
- 使用vs代码从Windows远程debugging部署在docker上的dotnet核心应用程序
- Visual Studio代码在将远程debugging附加到docker容器中的瓶颈应用程序期间卡住了
- 从Docker Windows容器远程debugging.Net Core控制台应用程序时,Visual Studio 2017不加载debugging符号
- Docker中的debugging限制是什么?