我的经历(大家可以跳过)

在虚拟机上运行docker时,使用docker pull时速度十分的慢。但是我之前使用docker pull时速度挺快的,不知道发生了什么导致速度如此的慢。当时在学习《商品甄选》,所需要的资料老师都提供好了,所以并未深入思考这个问题。

在《商品甄选》的最后一部分,需要安装harbor,然而在pull时,pull失败,尝试pull其他image,仍然pull不下来。并且在pull时,显示

pulling fs layer

我上网搜索了解到出现这个主要是因为国家把docker国外镜像hub封掉了,导致镜像pull不下来。可是在此之前,我已经配置了docker镜像源为阿里云镜像加速器,所以我不知道是什么原因,折磨了我许久。

那既然如此,山不过来我便过去呗。我打算从另一种角度去解决问题,pull不了,我便load。我计划从其他方式下载下来tar包,我试过github上的很多方式,然而全部不行。

在我尝试过很多方法之后,甚至重装docker都不行,我突然灵光一闪,说不定是虚拟机的问题。

在目光转移到虚拟机之后,我想到之前为了固定ip地址进行的一系列操作,可能是那一些操作影响到了虚拟机的网络,所以导致pull不下来。所以我立马上网搜查,果然找到了这方面的文章,有人和我一样,也是更改国内镜像源也不行,他的那篇帖子里提到在Windows上安装docker,所以我找到了解决办法。

解决办法

更改国内镜像源

  1. 使用下列代码
vim /etc/docker/daemon.json
  1. 编辑里面的配置
{
  "registry-mirrors": [
    "https://hub-mirror.c.163.com",
    "https://mirror.baidubce.com"
  ]
}

使用阿里云、华为云、中科院等等都可以。

  1. 加载配置和重启docker
systemctl daemon-reload 
systemctl restart docker

更改DNS

有一篇热门帖子是说DNS的问题,详情可以看Docker拉取镜像过慢或卡死的坑!!!(亲测有效)

  1. 修改etc/resolv.conf文件
vim /etc/resolv.conf
  1. 修改114.114.114.114为阿里云的DNS(223.5.5.5)
  2. 重启虚拟机
reboot

使用docker-drag工具

docker-drag是github上一个开源工具,该工具构建http请求直接下载tar包,上传至虚拟机后可使用load加载镜像。github上详细说明了该如何使用。

传送门:
docker-drag

但是该方法似乎已经失效了,我使用的时候失败了,大家可以去看看。

docker for windows

在本地的操作系统上下载docker,而不是使用虚拟机。

我的操作系统是Windows,所以我下载了docker for windows。具体怎么下载,网上有大量的帖子说明,各位自行百度。

  1. 在本地使用docker pull拉取镜像,以nacos为例
docker pull nacos/nacos-server:latest
  1. 保存为tar包
docker save -o nacos-server.tar nacos/nacos-server:latest
  1. 上传至虚拟机,加载镜像。
docker load -i nacos-server.tar

这样就可以忽视虚拟机网络的问题了。

Logo

权威|前沿|技术|干货|国内首个API全生命周期开发者社区

更多推荐