Introduction: Uniform Development by Docker & QEMU

About: Docker.Taipei 共同發起人 碁峰《Docker入門與實戰》審閱者 Acer eDC, 玉山銀行資訊處, 臺北榮民總醫院 Java/Web Developer, Image Processing, Software Engineering, Algorithmic Trading, Docker

Docker is an open platform for developers and sysadmins to build, ship, and run distributed applications.

QEMU is a generic and open source machine emulator and virtualizer.

Combine Docker and QEMU to run Raspbian on X86 or AMD64 platform, and build Docker image include your program that can run on RPi (ARMv6) and RPi 2 (ARMv7).

Step 1: Install Docker & QEMU on Linux

I use Ubuntu to demo this project.

Install Docker on Ubuntu:

curl -sSL https://get.docker.com/ubuntu/ | sudo sh

Insatll QEMU on Ubuntu:

sudo apt-get install qemu-user-static

Step 2: Run Raspbian on X86

Pull RPi Raspbian image of Docker

sudo docker pull philipz/rpi-raspbian:latest

sudo docker run -it --rm -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static philipz/rpi-raspbian bash

Step 3: Write Once, Run Anywhere

Dockerizing any program of linux system, it can run anywhere.

In Arch Linux on RPi install Docker.

pacman -S docker

Build Docker images of your program. This is the "Hello World" example of Mono application, first run on RPi (ARMv6). Then it run on RPi 2 (ARMv7), also run on X86 finally.

So we could portable program on RPi, RPi 2, and PC by Docker.

Step 4: Example - Run RPi XRDP Application on X86

The other example is XRDP (Remote Desktop) of RPi.

sudo docker run -it --rm -p 3389:3389 -v /usr/bin/qemu-arm-static:/usr/bin/qemu-arm-static philipz/raspbian-xfce:latest bash

Then open Remote Desktop Client to connect the XRDP of RPi on X86.

Cheers...