问题描述
我正在尝试在树莓派上使用 picamera、raspistill。 我认识到这些模块仅适用于 32 位操作系统。 但我想使用另一个在 64 位操作系统中工作的开发。
所以我的问题是这个。 是否可以制作或安装与主机操作系统不同的容器?
- 主机:32 位,容器:64 位
- 我认为 docker 正式支持 64 位操作系统。所以这不会……对吧?
- 主机:64 位,容器:32 位
- 如果没问题的话。我可以混合使用本地 64 位函数和容器 32 位函数吗?
解决方法
有一个功能可以在同一个内核上运行多个架构。我使用它在 amd64 主机操作系统/内核上的 amd64 容器中运行 i386 二进制文件。
Debian 称之为 Multiarch。我还没有在手臂上试过这个,但理论上这可以和英特尔一样工作。
看看 Multiarch HOWTO:
- 为 Dockerfile 中的架构使用基础容器,例如
image=debian:buster-slim
- 添加另一个架构:
dpkg --add-architecture armhf
- 更新包列表:
apt-get update
- 为相应架构(例如 armhf 或 arm64)安装工具和库:
apt-get install -y yourpackage:armhf
正如我所说的,我只在 i386 上使用它,arm 可能会有更多的陷阱。