All Projects → lukechilds → Dockerpi

lukechilds / Dockerpi

Licence: mit
A Virtualised Raspberry Pi inside a Docker image

Projects that are alternatives of or similar to Dockerpi

Nextcloudpi
📦 Build code for NextcloudPi: Raspberry Pi, Odroid, Rock64, Docker, curl installer...
Stars: ✭ 1,340 (+25.94%)
Mutual labels:  raspberry-pi, arm, docker-image, qemu
Runtime
Kata Containers version 1.x runtime (for version 2.x see https://github.com/kata-containers/kata-containers).
Stars: ✭ 2,103 (+97.65%)
Mutual labels:  virtual-machine, container, qemu
Multipass
Multipass orchestrates virtual Ubuntu instances
Stars: ✭ 3,978 (+273.87%)
Mutual labels:  virtual-machine, container, qemu
Arm now
arm_now is a qemu powered tool that allows instant setup of virtual machines on arm cpu, mips, powerpc, nios2, x86 and more, for reverse, exploit, fuzzing and programming purpose.
Stars: ✭ 719 (-32.42%)
Mutual labels:  arm, virtual-machine, qemu
ProxmoxVE PHP API
ProxmoxVE PHP API
Stars: ✭ 78 (-92.67%)
Mutual labels:  vm, container, qemu
Docker Unms
This image is no longer maintained: https://github.com/oznu/docker-unms/issues/53
Stars: ✭ 145 (-86.37%)
Mutual labels:  raspberry-pi, arm, docker-image
Docker Jdownloader
JDownloader 2 Docker Image (Multiarch) - Passed 40M Downloads
Stars: ✭ 85 (-92.01%)
Mutual labels:  raspberry-pi, arm, docker-image
js5005
js5005 is a virtual CPU with every logic gate simulated. A pretty interface, a built in assembler, display, and 256 bytes of RAM to boot. It's the better i4004.
Stars: ✭ 14 (-98.68%)
Mutual labels:  vm, virtual-machine, qemu
Embiggen Disk
embiggden-disk live-resizes a filesystem after first live-resizing any necessary layers below it: an optional LVM LV and PV, and an MBR or GPT partition table
Stars: ✭ 440 (-58.65%)
Mutual labels:  virtual-machine, vm, qemu
Mac
bytecode interpreter in c (blog post)
Stars: ✭ 628 (-40.98%)
Mutual labels:  virtual-machine, vm
Lc3 Vm
Write your own virtual machine for the LC-3 computer!
Stars: ✭ 631 (-40.7%)
Mutual labels:  virtual-machine, vm
Raspberrypi tempmon
Raspberry pi CPU temperature monitor with many functions such as logging, GPIO output, graphing, email, alarm, notifications and stress testing. Python 3.
Stars: ✭ 52 (-95.11%)
Mutual labels:  raspberry-pi, arm
Aria2 Ariang Docker
The Docker image for Aria2 + AriaNg + File Browser + Rclone
Stars: ✭ 610 (-42.67%)
Mutual labels:  raspberry-pi, arm
Runtime
OCI (Open Containers Initiative) compatible runtime using Virtual Machines
Stars: ✭ 588 (-44.74%)
Mutual labels:  virtual-machine, container
Freenos
FreeNOS (Free Niek's Operating System) is an experimental microkernel based operating system for learning purposes written in C++. You may use the code as you wish under the terms of the GPLv3.
Stars: ✭ 683 (-35.81%)
Mutual labels:  raspberry-pi, arm
Vmcli
A set of utilities (vmcli + vmctl) for macOS Virtualization.framework
Stars: ✭ 571 (-46.33%)
Mutual labels:  virtual-machine, vm
Kubernetes On Arm
Kubernetes ported to ARM boards like Raspberry Pi.
Stars: ✭ 572 (-46.24%)
Mutual labels:  raspberry-pi, arm
Ethereumjs Monorepo
Monorepo for the Ethereum VM TypeScript Implementation
Stars: ✭ 813 (-23.59%)
Mutual labels:  virtual-machine, vm
Fasmg Ebc
An EFI Byte Code (EBC) assembler, based on fasmg
Stars: ✭ 17 (-98.4%)
Mutual labels:  arm, qemu
Woa Deployer Rpi
WOA Deployer for Raspberry Pi
Stars: ✭ 898 (-15.6%)
Mutual labels:  raspberry-pi, arm

dockerpi

Actions Status Docker Pulls Docker Image Size GitHub Donate Bitcoin Donate Lightning Donate

A Virtualised Raspberry Pi inside a Docker image

Gives you access to a virtualised ARM based Raspberry Pi machine running the Raspian operating system.

This is not just a Raspian Docker image, it's a full ARM based Raspberry Pi virtual machine environment.

Usage

docker run -it lukechilds/dockerpi

By default all filesystem changes will be lost on shutdown. You can persist filesystem changes between reboots by mounting the /sdcard volume on your host:

docker run -it -v $HOME/.dockerpi:/sdcard lukechilds/dockerpi

If you have a specific image you want to mount you can mount it at /sdcard/filesystem.img:

docker run -it -v /2019-09-26-raspbian-buster-lite.img:/sdcard/filesystem.img lukechilds/dockerpi

If you only want to mount your own image, you can download a much slimmer VM only Docker container that doesn't contain the Raspbian filesystem image:

Docker Image Size Docker Image Size

docker run -it -v /2019-09-26-raspbian-buster-lite.img:/sdcard/filesystem.img lukechilds/dockerpi:vm

Which machines are supported?

By default a Raspberry Pi 1 is virtualised, however experimental support has been added for Pi 2 and Pi 3 machines.

You can specify a machine by passing the name as a CLI argument:

docker run -it lukechilds/dockerpi pi1
docker run -it lukechilds/dockerpi pi2
docker run -it lukechilds/dockerpi pi3

Note: Pi 2 and Pi 3 support is currently experimental. Networking doesn't work and QEMU hangs once the machines are powered down requiring you to docker kill the container. See #4 for details.

Wait, what?

A full ARM environment is created by using Docker to bootstrap a QEMU virtual machine. The Docker QEMU process virtualises a machine with a single core ARM11 CPU and 256MB RAM, just like the Raspberry Pi. The official Raspbian image is mounted and booted along with a modified QEMU compatible kernel.

You'll see the entire boot process logged to your TTY until you're prompted to log in with the username/password pi/raspberry.

[email protected]:~$ uname -a
Linux raspberrypi 4.19.50+ #1 Tue Nov 26 01:49:16 CET 2019 armv6l GNU/Linux
[email protected]:~$ cat /etc/os-release | head -n 1
PRETTY_NAME="Raspbian GNU/Linux 10 (buster)"
[email protected]:~$ cat /proc/cpuinfo
processor       : 0
model name      : ARMv6-compatible processor rev 7 (v6l)
BogoMIPS        : 798.31
Features        : half thumb fastmult vfp edsp java tls
CPU implementer : 0x41
CPU architecture: 7
CPU variant     : 0x0
CPU part        : 0xb76
CPU revision    : 7

Hardware        : ARM-Versatile (Device Tree Support)
Revision        : 0000
Serial          : 0000000000000000
[email protected]:~$ free -h
              total        used        free      shared  buff/cache   available
Mem:          246Mi        20Mi       181Mi       1.0Mi        44Mi       179Mi
Swap:          99Mi          0B        99Mi

Build

Build this image yourself by checking out this repo, cd ing into it and running:

docker build -t lukechilds/dockerpi .

Build the VM only image with:

docker build -t lukechilds/dockerpi:vm --target dockerpi-vm .

Credit

Thanks to @dhruvvyas90 for his dhruvvyas90/qemu-rpi-kernel repo.

License

MIT © Luke Childs

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].