Docker supports ARMv6/v7 and even ARM64 (v8?), so you can run it on your Raspberry Pis.
Follow the official instructions from Docker here: https://docs.docker.com/engine/installation/linux/docker-ce/debian/
If you have Raspbian Jessie or Stretch (check the above documentation for others), this would be:
$ sudo apt-get install apt-transport-https ca-certificates curl gnupg2 software-properties-common
$ curl -fsSL https://download.docker.com/linux/$(. /etc/os-release; echo "$ID")/gpg | sudo apt-key add -
$ echo "deb [arch=armhf] https://download.docker.com/linux/$(. /etc/os-release; echo "$ID") \
$(lsb_release -cs) stable" | \
sudo tee /etc/apt/sources.list.d/docker.list
$ sudo apt-get update; sudo apt-get install docker-ce
$ sudo systemctl start docker
You can then test it (thanks to Docker multiarch support):
$ sudo docker run --rm hello-world
In order to avoid typing sudo
for every Docker invocation, you can do the following extra steps: https://docs.docker.com/engine/installation/linux/linux-postinstall/
Enjoy!
PS: I've installed Ubuntu Server 16.04 for armhf. I have then followed these instructions (for Ubuntu) to install Docker on it: https://docs.docker.com/engine/installation/linux/docker-ce/ubuntu/#set-up-the-repository. It works like a charm as well.
self-sufficient container that will run virtually anywhere
is falling short. It sounds like for it to run on something, docker needs to be compatible with the device its running on. It sounds likeMono
orJava
which are more promising, but not really what you need. Why do you need this on the Pi any way? If you developing for Linux, you should really develop in what it supports natively.