我正在使用docker-compose运行正在开发的应用程序。
我有一个运行python Flask Web应用程序的“ Web”服务。此服务依赖于其他服务(数据库,缓存等)。
我需要以交互方式运行“ web”主服务,以便访问调试器(ipdb)。 我发现这样做的方法是
docker-compose run --name my-app.web --service-ports web
当我退出此容器并尝试使用相同的命令再次运行它时,出现此错误:
ERROR: Cannot create container for service web: Conflict. The container name "/my-app.web" is already in use by container "4fed84779bb02952dedb8493a65bd83b1a6664f066183233e8c8b4dc62291643". You have to remove (or rename) that container to be able to reuse that name.
如何在不创建新容器的情况下再次启动该容器?
还是每次我需要启动此应用程序时创建新容器的正确方法?
还是我错过了一些能够以交互方式启动一项服务的东西?
答案 0 :(得分:1)
在设置自定义名称时,docker-compose run
不会在执行完成后删除容器。要启用此行为,请使用选项--rm
:
docker-compose run --rm --name my-app.web --service-ports web
您还可以手动删除容器以再次运行它:
docker rm my-app.web
如果您未设置自定义名称,则没有必要。