Transclude of 【docker】局域网服务器如何拉取镜像-synced-block
问题
- 近日镜像服务器不提供服务了,咋办?
- 当使用docker pull 总是超时,怎么办?
- 当服务器只有局域网的时候,想要去获取docker镜像应该如何是好?
解决
方案一 使用俄罗斯镜像
https://mirror.yandex.ru/
优点:适合单独pull镜像使用,俄罗斯大厂提供服务
缺点:不支持配置到 daemon.json
使用方式:docker pull cr.yandex/mirror/nginx
前提是这镜像里得有,才能拉取
方案二 自建
TODO
方案三 找个”中间人”
个人在用
中间人设备:可以访问dockerhub的机器
目标设备:访问不了dockerhub,且想要部署某个docker的设备
- 找个可以正常访问dockerhub的机器— 中间人设备
- 使用
docker pull命令拉取响应的镜像 - 保存镜像
docker save -o /path/to/xxx.tar xxx:laster - 将保存的镜像存储到目标设备
- 在目标设备执行
docker load -i/path/toxxx.tar
示例
# 找一个可以上外网的机器 docker pull nginx:1.26.1 # 导出镜像 docker save -o ./nginx-1.26.1.tar nginx:1.26.1 # 上传到目的服务 --------------------------------- # 在目的服务器上执行导入 docker load -i nginx-1.26.1.tar root@ubuntu:~# docker load -i /home/sv_mp1/sv_share/vic/dockerhub/nginx-1.26.1.tar 9853575bc4f9: Loading layer [==================================================>] 77.83MB/77.83MB 9c94fd337c9a: Loading layer [==================================================>] 113.9MB/113.9MB fd2e008dc94f: Loading layer [==================================================>] 3.584kB/3.584kB 4d10ac38b61c: Loading layer [==================================================>] 4.608kB/4.608kB 3b747725bc80: Loading layer [==================================================>] 2.56kB/2.56kB 60c134e8aebc: Loading layer [==================================================>] 5.12kB/5.12kB 9a97f522cdaa: Loading layer [==================================================>] 7.168kB/7.168kB Loaded image: nginx:1.26.1