FriendlyARM has an image for the NanoPi NEO with mainline linux kernel.
Look! There is a 4.11 kernel image packed with Ubuntu 16.04 (see ).
Unfortunately, the image does not support docker out-of-the-box, because the kernel was not built with the required options.
The flag -D enables debug output. The full error is:
root@NanoPi-NEO:~# /usr/bin/dockerd -D DEBU Listener created for HTTP on unix (/var/run/docker.sock) INFO libcontainerd: new containerd process, pid: 1507 WARN containerd: low RLIMIT_NOFILE changing to max current=1024 max=65536 DEBU containerd: read past events count=0 DEBU containerd: grpc api on /var/run/docker/libcontainerd/docker-containerd.sock DEBU containerd: supervisor running cpus=4 memory=497 runtime=docker-runc runtimeArgs= stateDir="/var/run/docker/libcontainerd/containerd" DEBU libcontainerd: containerd health check returned error: rpc error: code = 14 desc = grpc: the connection is unavailable DEBU Using default logging driver json-file DEBU Golang's threads limit set to 6840 DEBU [zfs] zfs command is not available: exec: "zfs": executable file not found in $PATH ERRO 'overlay' not found as a supported filesystem on this host. Please ensure kernel is new enough and has overlay support loaded. ERRO 'overlay' not found as a supported filesystem on this host. Please ensure kernel is new enough and has overlay support loaded. DEBU Using graph driver vfs DEBU Max Concurrent Downloads: 3 DEBU Max Concurrent Uploads: 5 INFO Graph migration to content-addressability took 0.00 seconds WARN Your kernel does not support cgroup memory limit WARN Unable to find cpu cgroup in mounts WARN Unable to find blkio cgroup in mounts WARN Unable to find cpuset cgroup in mounts WARN mountpoint for pids not found DEBU Cleaning up old mountid : start. Error starting daemon: Devices cgroup isn't mounted
Many CONFIG_CGROUP_* kernel options are missing, as well as the CONFIG_OVERLAY_FS option.
There is a very nice script  from the Moby project to check a system config for docker compatibility.
Add missing options and rebuild the kernel
From FriendlyARM wiki page:
$ git clone https://github.com/friendlyarm/linux.git $ cd linux $ git checkout sunxi-4.11.y $ touch .scmversion $ make sunxi_defconfig ARCH=arm CROSS_COMPILE=arm-linux- # edit .config here $ make zImage dtbs ARCH=arm CROSS_COMPILE=arm-linux- $ cp arch/arm/boot/zImage /media/SD/boot/
When editing the kernel .config file, to enable an option, take:
# CONFIG_OVERLAY_FS is not set
...and turn it into:
|||FriendlyARM Wiki, Mainline Linux kernel, http://wiki.friendlyarm.com/wiki/index.php/Mainline_U-boot_%26_Linux|
|||Moby project, git repository, https://github.com/moby/moby/blob/master/contrib/check-config.sh|