如何在centos上通过docker运行树莓派程序?

发布于 2022-09-06 21:16:56 字数 114 浏览 11 评论 0

我现在有些树莓派程序,但是希望在真机使用的时候,先在centos中跑一下测试,想到了Docker。我理解docker就像一个小型的操作系统,代码可以借着这个壳子来跑。我的理解是否有偏颇?如果没有,大概要怎么去做呢?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

趁年轻赶紧闹 2022-09-13 21:16:56

在做你所述以上事情之前需要明确一点,那就是CPU架构问题。
PC系统和嵌入式系统的CPU架构不同,你可能需要了解:i386、x86_64、arm32、arm64、armv7、armv8(aarch32、aarch64)等cpu架构的区别

很明显,树莓派属于嵌入式系统,使用的是arm架构,树莓派3以上(包含3b和3b+)可支持64位cpu,也就是采用的是armv8架构,armv8支持两种属性,即:aarch32、aarch64,通俗的说就是最新发行的树莓派已经可以支持64位,而以往的版本仅支持32位

如果你的Docker是装在PC上的或者是PC上的虚拟机里的(比如vm虚拟机之类的)那么Docker所使用的硬件是与宿主机共享硬件核心,所以,宿主机的硬件核心决定了docker的核心,换句话说就是docker并非虚拟机,并不能虚拟出一套与宿主机不同cpu架构的硬件,即便是vm虚拟机,也是不能运行arm版本的操作系统的

在树莓派中可以安装centos系统,并且centos官方有img镜像,但仅是32位的。
在树莓派中运行的centos系统一样可以安装Docker,值得注意的是Docker官方的文档中指出:不建议嵌套Docker,也就是在Docker中创建一个centos镜像容器,然后在此容器中又安装一个Docker,虽然支持但不建议这样做。

想要实现如你所述的测试环境,可以参考以下做法:
1、使用和树莓派同样cpu架构的真机,也就是arm架构的真实测试机器
2、使用qemu虚拟机,qemu是一个软件模拟环境,可以模拟运行arm架构的操作系统,不过据说性能堪忧
3、使用交叉编译环境,也就是让pc上的Linux具有编译不同cpu架构程序的能力,程序经过交叉编译后即可移植到arm架构的机器上去

以上所述如有偏颇或不同方案,希望不吝赐教。

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文