问题描述
自动有了网络加速,我们再也不担心镜像拉取失败的问题。
但是,有些客户网络隔离无法访问外网,因此需要我们下载并复制镜像到服务器。
该笔记将记录:如何下载镜像到本地,复制到内网服务器,并加载镜像到本地。
解决方法
第一步、下载镜像到本地
docker pull "<image name>" # 必须先 pull 镜像到本地 docker save -o "<path for generated tar file>" "<image name>"
如果没有指定 -o 选项,默认输出到标准输出,可以通过 SSH 传输:
docker save <image> | bzip2 | \ ssh user@host 'bunzip2 | docker load'
第二步、复制到内网服务器
使用 rsync 或 scp 复制到远程服务器(详细步骤略过)
第三步、加载镜像到本地
docker load -i "<path to image tar file>" # 导入多个镜像 ls -1 *.tar | xargs --no-run-if-empty -L 1 docker load -i
参考文献
How to copy Docker images from one host to another without using a repository – Stack Overflow
docker save | Docker Documentation
Docker save without docker pull – Stack Overflow
How to do “docker load” for multiple tar files – Stack Overflow