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

Docker cp执行时出现Lchown错误但文件仍成功复制

无根模式Docker下docker cp权限报错的解决办法

问题场景

  • 运行环境:Ubuntu 22.04,Docker 24.0.7(无根模式)
  • 执行操作:使用docker cp命令向容器内复制文件,此前在RHEL+Podman环境下正常运行
  • 异常现象:命令返回权限错误,但文件已成功复制到容器内,最终由容器root用户拥有,功能上满足需求

错误输出

$ docker cp /home/refriedjello/test 21d77c659def:/root/test -q
Error response from daemon: failed to Lchown "/root/test" for UID 999182, GID 701 (try increasing the number of subordinate IDs in /etc/subuid and /etc/subgid): lchown /root/test: invalid argument

相关系统信息

$ id -u
999182
$ whoami
refriedjello
$ grep ^$(whoami): /etc/subuid
refriedjello:296608:65536
$ grep ^$(whoami): /etc/subgid
refriedjello:296608:65536

原因解析

无根模式Docker通过/etc/subuid和/etc/subgid给用户分配从属UID/GID范围,用于容器内权限映射。默认执行docker cp时,会尝试将复制的文件权限映射到宿主用户的真实UID(999182),但该UID不在当前用户的从属UID范围(296608~362143)内,导致chown操作失败。不过文件复制动作已完成,容器内root用户自动获得文件权限,因此最终结果符合需求。

可行解决方案

在docker cp命令中添加-a(归档)参数,该参数会保留文件原始权限属性,同时绕开宿主与容器间的UID/GID映射冲突,执行后无报错且文件正常复制:

docker cp -a /home/refriedjello/test 21d77c659def:/root/test -q

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.02 10:25:12