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

Docker容器文件同步疑问:容器内/tmp/logs能否同步至主机myfolder?

问题解答

不能,当前的Docker Compose配置无法实现将容器内/tmp/logs目录的文件同步到主机空目录myfolder的需求。

原因

Docker的绑定挂载(bind mount)机制是:当主机目录为空时,挂载后会直接覆盖容器内对应目录的内容,容器原有的/tmp/logs文件会被隐藏,而非同步到主机。

可行解决方案

方案一:先复制容器文件到主机再挂载

  1. 临时修改docker-compose.yml,注释掉./myfolder:/tmp/logs这一行,启动容器:
    docker-compose up -d
    
  2. 将容器内/tmp/logs的文件复制到主机myfolder目录:
    docker cp $(docker-compose ps -q myserver):/tmp/logs/. ./myfolder/
    
  3. 停止容器:
    docker-compose down
    
  4. 恢复原docker-compose.yml的挂载配置,重新启动容器。此时主机myfolder已有初始文件,后续容器写入/tmp/logs的内容会同步到主机。

方案二:使用命名卷初始化内容

  1. 修改docker-compose.yml,用命名卷替换绑定挂载:
    version: "3.9"
    
    services:
      myserver:
        image: <some image>
        restart: always
        volumes:
          - ./res:/tmp/configs
          - logs_volume:/tmp/logs
    
    volumes:
      logs_volume:
    
  2. 启动容器后,Docker会自动将容器内/tmp/logs的初始文件同步到命名卷logs_volume中。
  3. 若需要将卷内文件同步到主机myfolder,可执行:
    docker run --rm -v logs_volume:/source -v ./myfolder:/target busybox cp -a /source/. /target/
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.07 03:25:37