docker运行arm64架构的镜像、不同平台镜像构建

打印 上一主题 下一主题

主题 990|帖子 990|积分 2970

马上注册,结交更多好友,享用更多功能,让你轻松玩转社区。

您需要 登录 才可以下载或查看,没有账号?立即注册

x
背景

Docker 允许开辟者将应用及其依赖打包成一个轻量级、可移植的容器,实现“一次构建,到处运行”的目标。然而,不同的利用系统和硬件架构对容器镜像有不同的要求。比方,Linux 和 Windows 系统有不同的文件系统和系统调用,而 x86_64(amd64)和 ARM64 架构则有不同的指令集。
Docker 从 18.09 版本开始支持多平台镜像构建。--platform参数允许用户指定构建过程应该生成的目标利用系统和架构。比方,--platform=linux/amd64指定生成一个在 64 位 Linux 利用系统上运行的镜像
利用系统架构概览
在讨论--platform参数之前,我们必要相识一些常见的利用系统架构:
amd64:即 x86_64,是最常见的桌面和服务器 CPU 架构,广泛用于 Intel 和 AMD 的处理器,这个就是x86架构的。
arm64:ARM 架构的 64 位版本,常用于移动装备和一些高性能计算场景。
windows/amd64:指运行在 64 位 Windows 利用系统上的架构。
开启platform参数

docker默认没有开启 --platform 参数,必要手动开启
  1. docker info | grep -i 'experimental'
复制代码
修改daemon.json文件
  1. {
  2.   "experimental": true,
  3.    "registry-mirrors": ["https://dockerpull.com"]
  4. }
复制代码
重启docker
  1. systemctl daemon-reload
  2. systemctl restart docker
复制代码
修改完成后,重启 docker 来验证

安装 qemu 多平台支持

下载多架构支持的包,注意选对目标架构
qemu-aarch64-static 是arm-arch64架构的包
  1. wget https://github.com/multiarch/qemu-user-static/releases/download/v5.1.0-5/qemu-aarch64-static.tar.gz
复制代码
qemu-aarch64-static.tar.gz已上传到csdn资源上
https://download.csdn.net/download/wjzholmes/89839670
解压
  1. tar xzvf qemu-aarch64-static.tar.gz
复制代码
 配置可实行文件路径,增加权限
  1. sudo cp qemu-aarch64-static /usr/bin/
  2. chmod +x /usr/bin/qemu-aarch64-static
复制代码
注册qemu-user-static假造机 
  1. docker run --rm --privileged multiarch/qemu-user-static:register --reset
复制代码
(作用是注册一些什么东西,可以用先不考虑具体内容)
# --rm          容器退出时自动移除
# --privileged  赋予容器拓展的权限
# --reset      (启动时传递给容器的参数) 即:/register --reset
启动nginx的arm镜像 
  1. docker run -itd --platform linux/arm64 -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static --name=nginx_arm -p 8081:80 nginx:arm114
复制代码
启动nginx的x86镜像
  1. docker run -itd --name=nginx_x86 -p 8082:80 nginx:latest
复制代码

 启动镜像后web访问NGINX不通,查看是镜像内NGINX未启动,登录镜像启动nginx
  1. docker exec -it nginx_x86 /bin/bash
  2. service nginx status
  3. service nginx start
复制代码

查看arm和x86的nginx镜像都启动

 


参考文章:
【Docker系列】跨平台 Docker 镜像构建:深入明白`--platform`参数_docker --platform-CSDN博客
x86 平台利用 qemu-user-static 实现 arm64 平台 docker 镜像的运行和构建_docker_chen2ha-云原生
【无标题】_qemu-aarch64-static 源码下载-CSDN博客

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

用户国营

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表