1、简述
在上一篇博客中(【docker】docker compose使用),下载docker时,经常因为网络问题,导致下载失败。
本篇博客,尝试使用 阿里云的容器镜像服务(ACR)是否可以加速下载;
然后尝试在 阿里云的容器镜像服务(ACR)上构建自己的容器仓库
2、镜像下载加速
参见阿里云的公告:
为进一步规范镜像加速器工具的使用,容器镜像服务ACR将于2024年07月02日起对镜像加速器功能进行相应的调整。
变更内容
调整镜像加速器功能的使用范围:
- 仅限阿里云用户,在支持公网访问的阿里云产品上使用该镜像加速能力。
- 仅支持通过镜像加速器拉取限定范围内的容器镜像。
- 即仅阿里云内部可以正常使用;外部服务器无法访问。

3、构建自己的容器
3.1 注册
在 阿里云 上注册和登录账号
https://www.aliyun.com/
搜索 容器镜像服务 或则 英文缩写 ACR
创建个人版示例,可以免费创建一个
此时,镜像还是空的,需要在本地下载一个镜像,再上传,可以使用阿里云自带的;

3.2 下载基础镜像
先在本地下载一个基础镜像,比如ubuntu22.04+ros2的镜像
docker pull ros:humble-ros-base
注意这一步没有加速,有可能超时下载失败,可以多尝试几次;
下载成功后,上传至阿里云上的私有仓库中,以后可以从私有仓库下载,达到加速的目的。
如果下载失败,可以指定国内源
docker pull docker.1ms.run/osrf/ros:humble--ros-base
或者
docker pull docker.xuanyuan.me/osrf/ros:humble--ros-base
或者
docker pull docker.xuanyuan.me/osrf/ros:humble--ros-base
3.3 上传到个人仓库中
1)登录
docker login --username=您的用户名 key
可以在管理界面中查看,您完整的命令

2)推送镜像
注意:本人是在NVIDIA Orin系列开发上操作的,因此镜像为arm64版本
docker tag osrf/ros xxxxaliyuncs.com/guolaoer/ubuntu22.04:ros-humble-arm64
docker push xxxxaliyuncs.com/guolaoer/ubuntu22.04:ros-humble-arm64
推送后,可以在阿里云上查看

3)拉取镜像
当需要镜像时,可以从阿里云上私有的容器仓库上,直接拉取
docker pull xxxxaliyuncs.com/guolaoer/ubuntu22.04:ros-humble-arm64