docker: 如何打包一个可用的 image 到 aliyun 的镜像仓库中
🕐
打包一个可用的 image 到 aliyun 的个人镜像中,方便在国内快速的下载
01 拉取正常的 ruby-slim 镜像
拉取正常的镜像
# 拉取镜像
docker pull ruby:3.3.6-slim
# 如果有问题可以从这里
docker pull m.daocloud.io/docker.io/library/ruby:3.3.6-slim
# 下面这个没有用(很多网上提示这个)
docker pull --platform linux/amd64 ruby:3.3.6-slim02 编译 x86 方式的镜像
准备 Dockerfile,执行命令 touch Dockerfile 生成
FROM ruby:3.3.6-slim
# Use Aliyun mirror for faster downloads in China
RUN sed -i 's/deb.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources && \
sed -i 's/security.debian.org/mirrors.aliyun.com/g' /etc/apt/sources.list.d/debian.sources编译 x86_64 位的
docker buildx build --platform=linux/amd64 -t ruby:3.3.6-slim-x86_64 .03 确认一下版本
确认一下版本
docker inspect ruby:3.3.6-slim-x86_64 --format='{{.Architecture}}' # amd6404 打好 tag
打好 tag,准备上传到 aliyun,b7b79209ffc4 为本地目标 image
# list all images
$ docker images
IMAGE ID DISK USAGE CONTENT SIZE EXTRA
jsw-rails-ng-web:latest 015f9de9d89c 1.65GB 482MB
ruby:3.3.6-slim b210597cc7d0 611MB 162MB
ruby:3.3.6-slim-x86_64 b7b79209ffc4 293MB 80.6MB
docker tag b7b79209ffc4 crpi-waqi49lkajb6myha.cn-hangzhou.personal.cr.aliyuncs.com/jswork/ruby:3.3.6-slim-x86_6405 push 到 aliyun
push 到目标镜像
docker push crpi-waqi49lkajb6myha.cn-hangzhou.personal.cr.aliyuncs.com/jswork/ruby:3.3.6-slim-x86_64查看是否真实推送到 aliyun

06 在 linux 下拉取镜像
拉取刚处理好的 image ,有可能需要 login
docker pull crpi-waqi49lkajb6myha.cn-hangzhou.personal.cr.aliyuncs.com/jswork/ruby:3.3.6-slim-x86_64重命名,并查看架构是否正确
$ dk-mv crpi-waqi49lkajb6myha.cn-hangzhou.personal.cr.aliyuncs.com/jswork/ruby:3.3.6-slim-x86_64 ruby:3.3.6-slim-x86_64
$ dk-ls
REPOSITORY TAG IMAGE ID CREATED SIZE
ruby 3.3.6-slim-x86_64 820283e89026 13 months ago 187MB07 确认版本是否正确
确认版本是否为 x86/amd 支持的
# 确认架构
docker inspect ruby:3.3.6-slim-x86_64 --format='{{.Architecture}}' # amd64
# 运行容器
docker run --platform linux/amd64 -it ruby:3.3.6-slim-x86_64 bash
08 如果需要更新
直接执行同样的命令
- 变化的部分 docker hash:
4a630be4c3b4 - 可替换部分:
ruby:3.3.6-slim-x86_64
docker buildx build --platform=linux/amd64 -t ruby:3.3.6-slim-x86_64 .
docker tag 4a630be4c3b4 crpi-waqi49lkajb6myha.cn-hangzhou.personal.cr.aliyuncs.com/jswork/ruby:3.3.6-slim-x86_64
docker push crpi-waqi49lkajb6myha.cn-hangzhou.personal.cr.aliyuncs.com/jswork/ruby:3.3.6-slim-x86_64aliyun
docker
image
daocloud
🔗 参考链接
- https://github.com/aric-docker/docker-ruby3
- https://dev.to/mrexodia/running-x86-containers-on-your-m1-mac-with-docker-and-rosetta-2i80
- https://cr.console.aliyun.com/repository/cn-hangzhou/jswork/ruby/images
- https://www.everythingdevops.dev/blog/building-x86-images-on-an-apple-m1-chip
- https://chat.qwen.ai/c/ba81f94c-42b0-44da-bf01-af714f896ba8