I can boot and run Snappy Ubuntu Core on the Pi 2, but there are very few apps and frameworks currently available for the ARM version of Snappy. This wouldn't be a major problem if the Docker framework was available, as one of the main use-cases for Snappy is to provide a minimal OS on which to deploy container systems like Docker. Currently the Docker framework is missing from Snappy on ARM. However, I know that Docker has been ported to Arch on the Pi, so there doesn't seem to be any reason not to have Docker on Snappy for the Pi 2. Does anyone know if a Docker framework is planned, and if so, what the expected time-scale might be?
3 Answers
Just a word of warning. This may not be as useful as you think. Even if you succeed in getting docker running on the PI, you'll have to find containers that were built with the PI in mind. You cannot run x86 or amd64 compiled software on ARM, even if it's in a container.
If you try the Arch Linux image you can get docker going, as smokes2345 says you cant use much in the docker repo but you can create your own stuff and it'll run. Docker was at 1.5 at the time of writing so its quite up-to-date too.
As I understand the Docker hub/repo is x86_64 only at the moment, and doesn't work too well for ia32 either and definitely not Snappy for the Pi. If instead you wanted to get Docker going on the Pi2 using Arch here's a guide on what I did.
Whilst its a bit uphill you can build a base image from the Arch Raspberry pi tar file using docker import then create a Dockerfile to make it 'do stuff'.
I've had it running sqlite3 and python3 in a container, admittedly that's pretty lame but it does work.
The below is very much 'what-if?' the image is about 1GB (!) but hopefully gets you going, can fix the image later. This assumes you are root and you've updated arch with
pacman -Syy
pacman -Su
Anyway, to build my base image I did
# install docker and lxc
pacman -S docker lxc wget
# download the arch image
wget http://archlinuxarm.org/os/ArchLinuxARM-rpi-2-latest.tar.gz
# build a base image from it
cat ArchLinuxARM-rpi-2-latest.tar.gz | docker import - archarm:test2
it takes a minute or two but you should then see something like
14959a4d75379ec943f6303a59109aebe1763971586812cd074f652c466cf16d
and if you type
docker images
you should see, in the list,
archarm test2 14959a4d7537 6 minutes ago
with the start of that long ID - yours will be different.
you should then be able to run this image as a container using
docker run -t -i --name toby archarm:test2 /bin/bash
and there is Arch on the Pi2 running a container from Docker 1.5 :)
For a slightly less trivial example if you create a Dockerfile (this is case sensitive) in a directory and add
#use base image
FROM archarm:test2
#update to get the current repos
RUN pacman -Syy
#fetch sqlite
RUN pacman -S sqlite3 --noconfirm
ENTRYPOINT sqlite3 testdb
then build this using
docker build --tag arch:sqlite3 .
you should be able to start a container directly into Sqlite3
docker run --name toby8 -t -i arch:sqlite3
and Sqlite3 should greet you with
SQLite version 3.8.9 2015-04-08 12:16:33
Enter ".help" for usage hints.
sqlite>
Then its over to you to build your containers by hand :(, hope that helps though.
And yes, Ubuntu Snappy on the Pi2 seems a bit pointless out-of-the-box since there are no frameworks available and nothing does anything, except maybe that Go server?
Ubuntu Snappy image on the Pi(ubuntu-15.04-snappy-armhf-raspi2.img) running Docker.
-
Welcome to Raspberry Pi! Whilst this may theoretically answer the question, it would be preferable to include the essential parts of the answer here, and provide the link for reference.– Ghanima ♦Commented Jun 16, 2016 at 17:11
lxc
is. You could try Arch for armv7.