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

Docker绑定主机与容器目录失败:/home与容器/test同步异常

Docker绑定挂载未同步文件的问题分析与解决

核心问题

你搞反了绑定挂载的方向:docker run -v /home:/test 是将主机的/home目录挂载到容器的/test目录,此时容器内原有的/test目录内容会被主机/home的内容覆盖(隐藏),所以主机/home不会出现容器里的new.txt,反而主机/home的内容会出现在容器/test中。

解决方法

方法1:直接复制容器内文件到主机

如果仅需要获取容器里的new.txt,最直接的方式是:

# 启动临时容器(无需挂载)
docker run -d --name temp_sample sample1:latest
# 复制容器内的new.txt到主机/home目录
docker cp temp_sample:/test/new.txt /home/
# 清理临时容器
docker stop temp_sample && docker rm temp_sample

方法2:用命名卷实现初始数据同步(适合持久化场景)

如果希望容器启动时自动将/test目录内容同步到主机/home,可借助命名卷中转(Docker会自动将容器目录内容复制到新创建的命名卷):

  1. 创建命名卷并同步容器内容:
docker volume create test_data
docker run -d --name temp_container -v test_data:/test sample1:latest
  1. 将卷内内容复制到主机/home:
# 用busybox镜像做中转,完成目录内容复制
docker run --rm -v test_data:/source -v /home:/target busybox cp -r /source/. /target/
  1. 清理临时资源(可选):
docker stop temp_container && docker rm temp_container
docker volume rm test_data

方法3:双向同步的挂载逻辑

若后续需要主机/home与容器/test双向同步,且保留容器初始内容,需先完成文件复制,再挂载:

  1. 按方法1将new.txt复制到主机/home
  2. 启动挂载容器:
docker run -t -d -v /home:/test sample1:latest /bin/bash

此时两边的文件修改会实时同步。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 00:35:29