每次运行命令“docker-compose run web ...”时,都会导致另一个容器被添加到Kitematic,所以我有一个像“image-name_web_run_1”等容器的列表,每次运行docker-compose。运行命令“docker-compose run web ...”在Kitematic容器列表中创建一个新容器
这是预期的行为?如果是这样,我该如何解决它?
每次运行命令“docker-compose run web ...”时,都会导致另一个容器被添加到Kitematic,所以我有一个像“image-name_web_run_1”等容器的列表,每次运行docker-compose。运行命令“docker-compose run web ...”在Kitematic容器列表中创建一个新容器
这是预期的行为?如果是这样,我该如何解决它?
它是预期的。您可以使用docker-compose run --rm
在退出时移除容器。
您可以使用docker-compose down
或docker-compose rm -a
清理这些旧容器。
你的意思是新的容器?这是docker-compose run
的预期行为,请参阅:https://docs.docker.com/compose/reference/run/
您的意思是使用docker-compose exec
? 例如,docker-compose exec web /bin/sh
参见:https://docs.docker.com/compose/reference/exec/
我试图直接从命令行运行容器命令。是的我的意思是容器。 – Dobler
要运行容器命令,您可以使用'docker-compose exec',例如'docker-compose exec web/bin/sh',它相当于'docker exec -ti web/bin/sh'。请参阅:https://docs.docker.com/compose/reference/exec/。 (回答更新以反映您的评论。) – ldg
如果您试图在正在运行的容器上运行命令,则“docker exec”(或“docker-compose exec')就是您要查找的内容。 'docker-compose run --rm'会创建并销毁一个临时容器,这个容器比较昂贵,可能会有一些副作用。在基本情况下,他们几乎可以做同样的事情,所以它可能并不重要 - 只取决于你想要做的事情。 – ldg
非常感谢! – Dobler