背景

安装k8s channle插件的时候,某台机器无法拉取
https://raw.githubusercontent.com/coreos/flannel/master/Docum... 中的镜像

解决办法

自己某个机器可以拉取,拉取之后就放到阿里云的镜像托管上,当然有时间和精力可以自己做个registry。

docker pull docker.io/flannel/flannel:v0.22.1
#拉成功了,在tb机器上操作
tb@tb-laptop:~$ docker images |grep flannel
flannel/flannel 

解决步骤

登录阿里云Docker Registry

$ docker login --username=youname@youhost.com registry.cn-hangzhou.aliyuncs.com
用于登录的用户名为阿里云账号全名,密码为开通服务时设置的密码。

从Registry中拉取镜像

$ docker pull registry.cn-hangzhou.aliyuncs.com/yaxiaomu/flannel:[镜像版本号]

将镜像推送到Registry,注意打tag在登陆之后,可以先docker logout之后,在login

$ docker login --username=yaxi**@sina.cn registry.cn-hangzhou.aliyuncs.com
$ docker tag [ImageId] registry.cn-hangzhou.aliyuncs.com/yaxiaomu/flannel:[镜像版本号]
$ docker push registry.cn-hangzhou.aliyuncs.com/youname/flannel:[镜像版本号]
请根据实际镜像信息替换示例中的[ImageId]和[镜像版本号]参数。

选择合适的镜像仓库地址

从ECS推送镜像时,可以选择使用镜像仓库内网地址。推送速度将得到提升并且将不会损耗您的公网流量。

如果您使用的机器位于VPC网络,请使用 registry-vpc.cn-hangzhou.aliyuncs.com 作为Registry的域名登录。

  1. 示例
    使用"docker tag"命令重命名镜像,并将它通过专有网络地址推送至Registry。

$ docker images
REPOSITORY TAG IMAGE ID CREATED VIRTUAL SIZE
registry.aliyuncs.com/acs/agent 0.7-dfb6816 37bb9c63c8b2 7 days ago 37.89 MB
$ docker tag 37bb9c63c8b2 registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816
使用 "docker push" 命令将该镜像推送至远程。

$ docker push registry-vpc.cn-hangzhou.aliyuncs.com/acs/agent:0.7-dfb6816


牙小木木
1.5k 声望80 粉丝

iamtb.cn