<div align="center">
<img width="200" src="https://gitee.com/iamsjy/dockerpi/raw/master/media/logo.svg">
</div>
原项目:https://github.com/lukechilds/dockerpi
原镜像:https://hub.docker.com/r/lukechilds/dockerpi/
由于此 `docker` 镜像仅支持 `Linux amd64`,于是我在树莓派上编译了一份支持 `armhf` 的镜像,现在可以在树莓派上模拟树莓派了。(滑稽
地址:https://hub.docker.com/r/hmsjy2017/dockerpi-armhf/
## 用法
```
docker run -it hmsjy2017/dockerpi-armhf
```
**默认用户名:pi**
**默认密码:raspberry**
默认情况下,关闭时所有文件系统更改都将丢失。您可以通过`/sdcard`在主机上挂载卷来保存更改:
```
docker run -it -v $HOME/.dockerpi:/sdcard hmsjy2017/dockerpi-armhf
```
如果您要挂载特定的映像,则可以在`/sdcard/filesystem.img`以下位置挂载它:
```
docker run -it -v /2019-09-26-raspbian-buster-lite.img:/sdcard/filesystem.img hmsjy2017/dockerpi-armhf
```
如果只想挂载自己的映像,则可以下载只有VM的更轻量的`Docker`容器(不带`Raspbian`文件系统映像):
[![Docker Image Size](https://badgen.net/docker/size/hmsjy2017/dockerpi-armhf/latest/arm?icon=docker&label=hmsjy2017/dockerpi-armhf:latest)](https://hub.docker.com/r/hmsjy2017/dockerpi-armhf/tags?name=latest)
[![Docker Image Size](https://badgen.net/docker/size/hmsjy2017/dockerpi-armhf/vm/arm?icon=docker&label=hmsjy2017/dockerpi-armhf:vm)](https://hub.docker.com/r/hmsjy2017/dockerpi-armhf/tags?name=vm)
```
docker run -it -v /2019-09-26-raspbian-buster-lite.img:/sdcard/filesystem.img hmsjy2017/dockerpi-armhf:vm
```
## 支持哪些机器?
默认情况下,虚拟机运行`Raspberry Pi 1`,但是已经为Pi 2和Pi 3机器添加了实验支持。
您可以通过将名称作为CLI参数运行指定虚拟机:
```
docker run -it hmsjy2017/dockerpi-armhf pi1
docker run -it hmsjy2017/dockerpi-armhf pi2
docker run -it hmsjy2017/dockerpi-armhf pi3
```
> 注意: Pi 2和Pi 3支持目前处于试验阶段。一旦机器断电,需要您`docker kill`容器,网络将无法正常工作,并且`QEMU`会挂起。
## 原理
通过使用`Docker`引导`QEMU`虚拟机来创建完整的`ARM`环境。就像`Raspberry Pi`一样,`Docker QEMU`进程可虚拟化具有单核`ARM11 CPU`和`256MB RAM`的计算机。正式的`Raspbian`映像与修改后的`QEMU`兼容内核一起安装和引导。