使用阿里云搭建个人镜像仓库

文章介绍了如何在无法科学上网的情况下,利用阿里云的容器镜像服务创建个人镜像仓库。通过绑定GitHub账户,编写Dockerfile,将k8s的kube-apiserver镜像作为示例进行构建和推送。最终,可以在本地快速拉取镜像,避免kubectl应用部署时的pending问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

许多人在搭建k8s的途中都会遇见镜像无法pull的情况,这里我们可以使用阿里云搭建一个个人的镜像仓库,对于无法科学上网的朋友可以使用此方式将镜像托管到阿里云以便我们拉取使用镜像

1.登录阿里云并选择容器镜像服务

2.创建个人版并设置密码

3.登录githu账户并创建项目

我们以kube-apiserver为实验模板

4.绑定github账号

#先登录github账户,点击绑定账号会自动弹出绑定界面

​​​​​​​#点击授权阿里云开发

4.根据提示创建镜像仓库

#创建命名空间和仓库,注意一个仓库对应一个组件

 5.选择代码源为我们刚刚在github创建的项目

6.将github项目clone到本地并编写dockerfile

#前提clone需要在本地bash使用ssh-keygen -t rsa -C 'xxxx@gmail@.com'生成秘钥对,然后将id_rsa.pub(cat ~/.ssh/id_rsa.pub)中的内容copy到github->settings->SSH and GPG keys->New SSH key->将公钥的内容粘贴到key中->Add SSH key

#这里使用的是k8s官网的镜像,此处用kube-apiserver作实验,完整的镜像如下图所示

编写完成之后将内容推送至github

git add -A

git commit -m 'xxx'

git push -u origin main

7.在阿里云中选择构建并添加规则

 7.测试构建

等待一段时间之后我们看到已经构建成功,点击镜像版本已经可以看到我们刚才构建的镜像

8.本地拉取测试

啪的一下,很快啊,直接就拉取到本地了,再也不用担心执行kubectl apply的时候出现一直pending而导致失败的情况了.

至此我们即可使用阿里云的镜像仓库作为我们的镜像中转站,将一些需要科学上网才能拉取的镜像添加到我们自己的镜像仓库中,同理我们可以将编译好的需要打包成镜像的项目上传到github中打包为docker镜像,现在个人仓库限制300个,不过已经远远满足个人需求了

如果我们使用ACK托管镜像服务的话还可以直接将镜像部署到集群当中 

### 如何使用阿里云 ACR 容器镜像仓库服务下载 Docker 镜像 #### 登录阿里云 Docker Registry 为了能够从阿里云私有镜像仓库拉取镜像,需要先登录到阿里云Docker Registry。这一步骤通过命令行工具完成。 ```bash docker login --username=<your-aliyun-id> registry.cn-hangzhou.aliyuncs.com ``` 在此过程中会被提示输入密码,该密码为阿里云账户对应的AccessKey Secret或者是控制台生成的临时Token[^1]。 #### 查找目标镜像地址 进入阿里云官网,在容器镜像服务页面找到已有的镜像仓库列表中的具体项目路径作为后续操作的基础URL。通常形式如下: `registry.<region>.aliyuncs.com/<namespace>/<repository>:<tag>` 其中 `<region>` 是地区标识符;`<namespace>` 表示命名空间名;而 `<repository>` 则代表具体的镜像库名称;最后`:tag`部分指定版本标签[^2]。 #### 拉取所需镜像 确认好完整的镜像地址之后就可以执行 `pull` 命令来获取远程服务器上的特定版本镜像文件至本地环境了。 ```bash docker pull registry.cn-hangzhou.aliyuncs.com/your_namespace/your_repository:latest ``` 上述命令会把名为 `your_repository` 的最新(`latest`) 版本镜像下载下来。如果想要其他特定版本,则需替换掉 `latest` 参数值为相应的 tag 标签[^3]。 #### 使用所下载的镜像启动容器实例 成功下载后可以立即基于此镜像创建一个新的运行实例来进行测试或其他用途。 ```bash docker run -d \ --name=my_container_name \ -p host_port:container_port \ registry.cn-hangzhou.aliyuncs.com/your_namespace/your_repository:latest ``` 这里 `-d` 参数表示以后台模式启动容器;`--name` 后面跟的是自定义给新容器起的名字;`-p` 设置映射关系使得宿主机端口与容器内部的服务端口建立连接以便外部访问[^4]。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值