You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何使用镜像名而非容器ID exec进入运行中的Docker容器

错误原因

docker exec 命令的目标参数要求是容器ID或容器名称,你传入的maps_web是镜像名称,自然会触发No such container报错。


解决方法

1. 用docker-compose exec(最适配你的场景)

你是通过docker-compose启动的服务,直接在docker-compose.yml所在目录执行即可,命令后接compose文件里定义的服务名称,不需要管容器自动生成的后缀:

docker-compose exec web sh

执行后会直接进入maps_web镜像对应的运行容器。

2. 原生docker命令通过镜像名筛选

如果需要用原生docker命令,可以结合过滤参数直接匹配对应镜像的运行容器:

docker exec -it $(docker ps -q --filter ancestor=maps_web) sh

说明:

  • docker ps -q 仅输出运行中容器的ID
  • --filter ancestor=maps_web 过滤出所有用maps_web镜像启动的容器

同镜像启动多个容器时,这个命令只会匹配第一个返回的容器,需要定位特定容器可以额外加名称、端口等过滤规则。

3. 直接使用完整容器名

从你提供的运行容器列表可以看到,maps_web镜像对应的实际容器名称是maps_web_1,直接传入容器名即可:

docker exec -it maps_web_1 sh

内容的提问来源于stack exchange,提问作者Dave

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.29 15:36:03