docker cp 专用于容器与主机间文件传输,支持运行或停止的容器;方向由路径写法决定:容器路径须含容器名/id加冒号,主机路径为普通路径;常用选项包括-a(保留属性)、-l(解析符号链接)、-r(递归目录)。

用 docker cp 就行,它专干容器和主机之间传文件或目录的活,不管容器是运行中还是已停止,都能用。
复制方向要分清:容器→主机 或 主机→容器
关键看路径写法:
- 容器里的路径必须带 容器名或ID加冒号,比如
myapp:/app/config.yaml - 主机路径就是普通路径,比如
./config.yaml或/tmp/logs/ - 顺序决定方向:
docker cp 容器路径 主机路径是从容器往外拷;docker cp 主机路径 容器路径是往里拷
常用操作示例
直接上手就能用:
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
- 把容器里
/var/log/app.log拷到当前目录:docker cp myapp:/var/log/app.log ./ - 把主机当前目录的
nginx.conf拷进容器的/etc/nginx/:docker cp nginx.conf myapp:/etc/nginx/ - 拷整个目录(比如备份容器里的
/data):docker cp myapp:/data ./data-backup - 把主机的
scripts/目录整个塞进容器:docker cp scripts/ myapp:/opt/scripts/
几个实用选项别漏掉
加了更稳妥:
-
-a:保留权限、所有者、时间戳等原始属性,适合配置或日志类文件 -
-L:遇到符号链接时,拷它指向的真实文件,不是链接本身 -
-R(或-r):明确递归拷目录,虽然不加也常能自动识别,但加上更清晰
注意这些细节
避免白忙活:
- 目标容器路径(比如
/etc/nginx/)必须已存在,否则报错;可先docker exec myapp mkdir -p /etc/nginx - 主机目标路径如果不存在(如
/backup/logs),Docker 会自动创建目录 - 容器内路径始终以
/为根,不依赖容器的WORKDIR - 想看容器里有什么路径?先
docker exec myapp ls -l /app确认下再拷










