x86环境打包和运行arm镜像
#下载qemu-aarch64-static
wget https://github.com/multiarch/qemu-user-static/releases/download/v5.1.0-5/qemu-aarch64-static.tar.gz
#解压
tar xzvf qemu-aarch64-static.tar.gz
#配置可执行文件路径
sudo cp qemu-aarch64-static /usr/bin/
chmod +x /usr/bin/qemu-aarch64-static
#注册qemu-user-static虚拟机
docker run --rm --privileged multiarch/qemu-user-static:register --reset
#查看运行的docker容器,容器可能已经退出,也是没问题的
docker ps -a
#x86环境拉取arm镜像,通过sha256值拉取,拉取下来会是一个none:none的镜像,重新打tag或者直接用imageId就行
docker pull nginx:latest@sha256:a48175e7029f0ae21b8b4e2526d6c3dd7278a8479be0e666d729b6234108f4e1
#x86环境制作一个arm镜像,将 qemu-aarch64-static 添加到/usr/bin/下,注意设置用户
ADD qemu-aarch64-static /usr/bin
#注意基础镜像要是arm的 FROM nginx:latest #注意用户权限 USER root #将本地qemu-aarch64-static添加到容器内 ADD qemu-aarch64-static /usr/bin
#x86环境运行一个arm镜像,将本地qemu-aarch64-static映射到容器内
docker run --rm -d -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static 镜像名和tag
docker run -it -v /usr/bin/qemu-aarch64-static:/usr/bin/qemu-aarch64-static image:tag bash
参考链接:https://www.cnblogs.com/nhdlb/p/15233410.html
https://www.freesion.com/article/99041444775/
https://dandelioncloud.cn/article/details/1407361797393145857