可通过命名管道实现Docker镜像流式传输:先用mkfifo创建管道,docker save nginx:latest > /tmp/image-pipe & 后台导出;再在另一终端执行docker load < /tmp/image-pipe实时加载,全程不落地、不生成tar文件。

可以通过命名管道(FIFO)配合 docker save 与 docker load 实现镜像的实时流式传输,全程不落地、不生成中间 tar 文件,节省磁盘空间并提升效率。
创建命名管道并启动流式导出
先用 mkfifo 创建一个命名管道,再让 docker save 直接写入该管道:
mkfifo /tmp/image-pipedocker save nginx:latest > /tmp/image-pipe &
注意:必须加 & 后台运行,否则命令会阻塞等待读端打开。
在另一终端实时加载镜像
在另一个 shell 中立即从同一管道读取并加载:
docker load
此时 docker save 的输出会直接被 docker load 消费,数据流经内存完成镜像迁移,无临时文件产生。
在 Linux 上通过 Docker 运行 OpenClaw,并使用 Tailscale 实现远程访问。⚠️ 涉及 sudo、Docker、Tailscale和凭证挂载——请先查阅安全章节...
跨主机流式传输(需 SSH 支持)
若要将镜像从本地机器实时传到远程主机,可结合 SSH 管道:
docker save redis:alpine | ssh user@192.168.1.100 'docker load'
该命令本质是把 save 输出通过标准输出管道传给远程 SSH 会话中的 docker load,同样不落盘,适合带宽有限但网络连通的场景。
压缩传输(可选优化)
如需减小传输体积,可在管道中加入压缩/解压环节:
- 本地压缩发送:
docker save mysql:8.0 | gzip | ssh user@host 'gunzip | docker load' - 注意:确保目标主机已安装
gzip/gunzip,且 Docker 版本支持流式输入(18.09+ 均兼容)
整个过程依赖标准输入输出流,Docker 自身不感知是否经过管道,只要数据格式正确即可解析。

















