dockerhub镜像仓库无法访问或者访问超时?我们怎样构建自己的阿里云镜像仓库实现从本地拉取镜像来完成项目的开发呢?
1.登录到阿里云容器镜像服务
网址:https://cr.console.aliyun.com
2.在实例列表中选择创建个人版
3.输入完自己的密码在个人实例中创建自己的命名空间
4.在个人实例中 网络一般选择 华东1(杭州)![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/e171380e6dac42939c2e439443ac4fc8.png)
5.点击访问凭证可以获取到自己的用户名和仓库地址
6.登录github:https://github.com/tech-shrimp/docker_image_pusher,点击右上角的fork选项,目的是让该代码拷贝到自己的仓库下![在这里插入图片描述](https://i-blog.csdnimg.cn/direct/c7f2864579df449fb60f3f4fdd409463.png)
7.在自己的仓库下选择该项目依次点击Setting->Secrets and varibales->action选项
8.点击New repository secret选项,创建四个变量分别是
ALIYUN_NAME_SPACE的值是你创建命名空间的名字
ALIYUN_REGISTRY的值是你的仓库地址,在个人实例访问凭证中查看
ALIYUN_REGISTRY_PASSWORD的值是你的密码
ALIYUN_REGISTRY_USER的值是你的用户名,在个人实例访问凭证中查看
9.以上配置完成后,下面操作需要使用VPN才能使用
登录dockerhub官方网站,输入自己需要的镜像,比如选择了最新版的mysql,
打开你的github刚才拷贝的那个代码,点击images.txt
10.点击右上角的“笔”符号进行编辑
11.在编辑框输入mysql并提交,然后点击Actions就可以看到镜像构建正在自动完成,下图是完成后的标志
12.然后打开自己的阿里云中的镜像仓库,就可以看到自己想要的镜像已经下载到自己的阿里云账户下了,然后点击镜像实例,里面有介绍怎样拉取该镜像的方法(注意:里面介绍的 容器运行时 是docker,如果自选用的容器运行时 是containerd,需要做以下配置)
其一:找到etc/containerd/config.toml文件,在文件的指定标签中插入以下代码
[plugins."io.containerd.grpc.v1.cri".registry]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors]
[plugins."io.containerd.grpc.v1.cri".registry.mirrors."registry.cn-hangzhou.aliyuncs.com"]
endpoint = ["https://registry.cn-hangzhou.aliyuncs.com"]
其二:有时 crictl 可能会默认使用 Docker 的相关配置路径,而不是使用 Containerd 的。你可以通过设置环境变量 CONTAINER_RUNTIME_ENDPOINT 来指定 crictl 使用的 endpoint。
export CONTAINER_RUNTIME_ENDPOINT=unix:///run/containerd/containerd.sock
这个命令会告诉 crictl 使用 Containerd 的套接字路径。你可以把这个设置加入到你的 shell 配置文件(例如 .bashrc 或 .bash_profile),以确保每次打开终端时都生效。
最后重启 Containerd 服务,确保你已经重新启动了 Containerd 服务,以便让配置生效:
sudo systemctl restart containerd