docker配合ssh管道跨主机传输镜像

需求

因未上库或网速慢等原因,有时需要传输打包后的docker image
官方建议的方法使用save & load命令导出文件比较繁琐
希望借助管道将打包stdout直接传入远程ssh主机读取

实现

通过官方例程得知docker save 默认写入stdin通过>重定向到文件
反之亦然,docker load默认读取stdin通过<读取文件,尝试如下

docker save polinux/stress | ssh user@10.0.1.88 docker load

成功传输,尝试交换终端反向拉取

ssh user@10.0.1.88 docker save polinux/stress | docker load

成功拉取

加速

使用gzip嵌套管道加速ssh数据传输
docker load可自动识别,无需解压

docker save polinux/stress | gzip | ssh user@10.0.1.88 docker load

参考

docker save | Docker Documentation
docker load | Docker Documentation
How to Use SSH Pipes on Linux

原文地址:https://www.cnblogs.com/azureology/p/15709057.html