一、需求描述:
服务器只能访问内容,无法链接docker服务器,也就无法下载镜像文件
二、解决方法
1、步骤一:
从一个可以访问外网的机器上下载docker镜像,并运行
docker run -itd --name=node-exporter -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --restart=always prom/node-exporter
此时运行的机子上会成功下载镜像文件
2、步骤二:
将该镜像文件打包
docker save prom/node-exporter > /home/ops/image_b.tar
此时可以在对应的目录下,查找到打包的image_b.tar文件
3、步骤三:
通过文件传输的方式,放到目标服务器(也就是那个不能连外网的服务器)
4、步骤四:
然后通过运行docker命令,解压镜像文件
docker load < ./image_b.tar
5、步骤五:
通过命令安装
docker run -itd --name=node-exporter -p 9100:9100 -v "/proc:/host/proc:ro" -v "/sys:/host/sys:ro" -v "/:/rootfs:ro" --restart=always prom/node-exporter
运行完成后,就可以在该服务器上看到对应的镜像了
三、注意事项
在步骤1(打包)时,需要停止掉正在运行的docker
保险起见,我将容器也删除了
docker ps -a
docker stop 470f3276256f
docker rm 470f3276256f
否则会出现
requested load from stdin, but stdin is empty
Docker ERROR: Error processing tar file(exit status 1): unexpected EOF
# 等七七八八的错误