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

Docker Compose中volumes_from按容器名引用报错如何正确配置?

Docker Compose volumes_from 引用报错的解决方法

出现报错 ERROR: Service "bar" mounts volumes from "oof", which is not the name of a service or container. 的核心原因是:使用container:oof写法时,bar服务启动优先级高于foo服务,foo对应的oof容器还未创建,Compose无法识别到该容器;同时同个docker-compose.yml栈内的服务卷引用,不需要加container:前缀。


解决方法

方法一:直接引用同栈服务名(推荐)

Compose内置支持直接通过服务名引用同配置文件内其他服务的卷,不需要指定容器名前缀,同时会自动处理服务启动依赖,保证foo服务先启动。
修改docker-compose.yml中bar服务的volumes_from配置即可:

version: 2.4
services:
  foo:
    image: ubuntu:focal
    container_name: oof
    volumes:
      - ./foo:/foo
  bar:
    image: ubuntu:focal
    container_name: rab
    volumes_from:
      # 直接写服务名foo,无需加container:前缀
      - foo

修改后直接执行docker-compose up -d即可正常启动。

方法二:预启动被引用的容器(不推荐)

如果你确实需要通过容器名显式引用,可以先单独启动foo服务保证oof容器已创建,再启动全部服务:

  1. 先单独启动foo服务:
    docker-compose up -d foo
  2. 待foo服务运行正常后,启动所有服务:
    docker-compose up -d

补充说明

只有当你需要引用不在当前docker-compose.yml管理范围内、且已经处于运行状态的外部容器的卷时,才需要使用container:<容器名>的写法,使用前需确认目标容器已经正常运行。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.04 05:57:02