前提:已经安装好docker环境
先确认自己的电脑架构(正常都是amd64即x86架构)
uname -m
这时我们直接运行arm架构的镜像会报错
WARNING: The requested image's platform (linux/arm64/v8) does not match the detected host platform (linux/amd64) and no specific platform was requested
此时需要执行下面两个命令
sudo apt-get install qemu binfmt-support qemu-user-static
docker run --rm --privileged multiarch/qemu-user-static --reset -p yes
这里是安装qemu-user-static来实现的
qemu-user-static是一个用于利用当前操作系统来运行其它架构的一个仿真器,这个github项目可以通过x86的机器编译出其它各个架构的docker镜像。
第二个命令是注册虚拟机
验证: 以 arm64v8/ubuntu:last 为例
docker run --rm -ti --platform linux/arm64/v8 arm64v8/ubuntu
注意在创建容器时要加上--platform linux/arm64/v8
进入容器后,通过命令查看当前ubuntu架构
查看容器版本号
不能通过uname -a查看
应该通过cat /etc/issue 查看
arch 查看架构
正确的姿势:
cat /etc/issue 或cat /etc/lsb-release
错误的姿势:
cat /proc/version 或 uname -a ,这样查到的是宿主机的系统。
容器内的应用直接运行在宿主机的内核之上, 容器并没有自己的内核, 也不需要虚拟硬件, 相当轻量化每个容器间是相互隔离, 每个容器内都要一个属于自己的独立文件系统, 独立的进程空间, 网络空间, 用户空间等, 所以在同一个宿主机上的多个容器之间彼此不会相互影响