/docker-coreelec

Docker 20.10 for CoreELEC distro

Primary LanguageShell

docker-coreelec

Docker 22.06 for CoreELEC distro

CoreELEC is a Linux system (JeOS - Just enough Operational System) that runs on devices with Amlogic processors. It has the minimum required to run the Kodi system and uses the original Amlogic Kernel for Android (4.9.113) having support for almost all embedded devices (Bluetooth, WiFi, Ethernet, Audio and Video Output, Hardware Video Decoding) using the original Android structure while other Linux distributions often do not support all installed devices.

Usually new software is installed through add-on using the GUI interface (Kodi), where the software is usually aimed for multimedia activities. One exception is the system-oriented software Docker, however it is limited to version 19.

Generally boxes sold with the Amlogic processors line have reasonably high memory for this type of system (4/8 GB) and multi-core processor with a very attractive price. The possibility of using a docker, especially the latest versions with security fixes, can make this type of equipment very efficient for a lot of domestic applications, such as servers for IoT.

This project provides structure to install the Docker version 22.06, latest (fetched directly from Github), on these devices.

Download releases

Download releases

Installation (easy way)

  • Enable ssh via Kodi / CoreELEC interface on the device
  • Access the device via SSH
curl https://raw.githubusercontent.com/tamusiunas/docker-coreelec/main/auto-install-docker-coreelec.bash > \
  auto-install-docker-coreelec.bash
bash ./auto-install-docker-coreelec.bash

Compilation instructions (using Linux x86_64/arm64 or macOS)

Note: If you're compiling it on a platform with a different target architecture, you have to use cross-compiling (buildx).

First step: know the device architecture with CoreELEC

  • Enable ssh via Kodi / CoreELEC interface on the device
  • Access the device via SSH
  • Look for the architecture with the uname command:
# uname -m

Output table

Output contains Architecture is
aarch64 arm64
armhf or armv7 arm7
armv6 arm6

Second step: compile it on a platform with docker installed and running

To compile for the same platform

git clone https://github.com/tamusiunas/docker-coreelec.git
cd docker-coreelec
./compile-docker.bash build

To compile on different platform ( is the architecture: arm64, arm7 or arm6)

git clone https://github.com/tamusiunas/docker-coreelec.git
cd docker-coreelec
./compile-docker.bash buildx -a <arch>
# example: ./compile-docker.bash buildx -a arm64

Depending on your system performance the compilation can take up to 30 minutes.

When finished a file (.tar.gz) starting with docker_v22.06 identified by architecture and date will be available locally. Use it to install Docker on CoreELEC.

Installing or Updating Docker on CoreELEC

Important: docker-coreelec (this project) is NOT compatilble with Kodi add-on Docker. If you're using Kodi add-on Docker please remove-it before installing docker-coreelec

To install it you have to use the download package from releases.

Considering you are using the package name "docker_v22.06.0-beta.0-167-gec89e7cde1.m_coreelec_arm64_20220808205438.tar.gz"

  • Send the package "docker_v22.06.0-beta.0-167-gec89e7cde1.m_coreelec_arm64_20220808205438.tar.gz" to device.
  • Access the device via SSH and type:
cd /
# considering that your package is on /storage
tar zxvf /storage/docker_v22.06.0-beta.0-167-gec89e7cde1.m_coreelec_arm64_20220808205438.tar.gz
systemctl daemon-reload
systemctl enable service.system.docker.service  
systemctl restart service.system.docker
# if you wanna have docker commands on PATH (recommended)
echo "export PATH=/storage/.docker/bin:\$PATH" >> /storage/.profile

All docker executable files are at "/storage/.docker/bin".

The daemon.config file is at "/storage/.config/docker/daemon.json"

The data-root directory is "/storage/.docker/data-root"

Files (binaries) installed on /storage/.docker/bin

File Source (github)
containerd moby
containerd-shim-runc-v2 moby
ctop ctop
ctr moby
docker docker-cli
docker-compose linuxserver
docker-init moby
docker-proxy moby
dockerd moby
dockerd-rootless-setuptool.sh moby
dockerd-rootless.sh moby
rootlesskit moby
rootlesskit-docker-proxy moby
runc moby
vpnkit (arm64 only) moby

Files (binaries) installed on /storage/.docker/cli-plugins

File Source (github)
docker-buildx buildx