遇到的设备,docker不能够查找和拉取镜像,可以在能够正常使用docker的设备,拉取并且推送到阿里云的容器镜像服务仓库中。
比如说,黑群晖设备。用docker官网的地址或加速地址,常不能使用,而且用代理之后也是不稳定。就可以使用这个方法。
网络上很多把镜像推送到阿里云那的教程都是使用服务器来弄的,其实有电脑的话,可以使用desktop版本的docker。
它是有window和mac版本的。在电脑上使用代理就可以正常拉取到镜像了。
最先开始,要到阿里云那创建个人实例、镜像仓库。
上面图片步骤,就是进入容器镜像服务,在控制台这创建号个人实例。这里已经创建的了。
在工具那有个镜像加速,一般加速地址就是填这个。可以尝试使用加速地址,看看能不能使用。不能再来弄这个方法也行。
上面有个华东1(杭州),是仓库所在的地址,可以选一个离自己所在地比较近的地址。
进入个人实例,然后创建仓库,仓库名命都可以随便,一般都用对应的名字。 创建填写的内容都可以随便填的。
创建仓库前要到命名空间那创建一个命名空间。
创建好了仓库,点击进去,就有教怎么拉取和推送的了。其实,第三步和第二步,是调转过来的。是要在可以正常使用docker的设备拉取好镜像,
然后实行第三步,将镜像推送到阿里云的Registry中。然后再到需要使用的设备,进行第二步,从Registry中拉取镜像。
拉取到镜像后,需要先修改名字和tag,即版本号。使用 docker tag
命令
docker tag 镜像名字:旧的版本号 镜像名字:新的版本号
例如,将 myapp:1.0
修改为 myapp:2.0
:
docker tag myapp:1.0 myapp:2.0
修改的名字,必须有很长的前缀,不然push不成功。前缀+名字就是第三步的那的最后一行。每个仓库都会自动对应的了,只要把版本号修改一下就可以了。
上面是我修改几个出来的镜像。
直接docker push baota:666 就是第一个容器。会出现会推送到docker官网那的,名字就会变成[docker.io/library/baota]
push没有 registry.cn-hangzhou.aliyuncs.com/caytenonas/ 这种前缀的,都不会拉取到阿里那。加上这个前缀,会出错,识别不了是想要推送哪个容器。
只有push第三个才能成功拉取到阿里云那。就是 docker push registry.cn-hangzhou.aliyuncs.com/caytenonas/baota:123
push成功后,就会出现在仓库中了。
最后,其实不用手动创建仓库,只要有命名空间就可以了。阿里会自动创建仓库的。
registry.cn-hangzhou.aliyuncs.com/caytenonas/baota:123
地址/命名空间/容器