Skip to content

Run Docker images in Termux via Udocker. No root, no qemu-VM, much faster.

Notifications You must be signed in to change notification settings

George-Seven/Termux-Udocker

Repository files navigation

Description

Correctly configures Udocker so that it works properly in Termux.

Update - Thanks to @IntinteDAO, udocker is now officially available in the Termux APT Repo. I've updated the configs to use it.


What's Udocker?

It's a user-space implementation of Docker.

This means that it can, without root or custom-kernel, run Docker images and containers.

And it does this without spinning up an entire qemu-VM, which makes it much, much faster than any other alternatives.

https://f-droid.org/en/packages/com.termux/

https://github.com/indigo-dc/udocker


Instructions

In Termux -

pkg i git -y && git clone --depth 1 https://github.com/George-Seven/Termux-Udocker ~/Termux-Udocker; git -C ~/Termux-Udocker pull; bash ~/Termux-Udocker/install_udocker.sh

And done.

Help text

udocker --help

Keep it updated

cd ~/Termux-Udocker; git pull

Examples

Here are example scripts provided for some popular Docker images -

Note

Popular Docker repos provide 64-bit images, but not all of them provide the older 32-bit images.

Running uname -m, if it shows 64, then your phone is 64-bit. Which means it'll work for everything given below.

You can still check if the repo supports 32-bit by checking the tag link next to the name.


Name: Stirling PDF (frooodle/s-pdf:latest)

~/Termux-Udocker/s-pdf.sh

Connect to it at - http://localhost:8080


~/Termux-Udocker/home-assistant.sh

Connect to it at - http://localhost:8123


~/Termux-Udocker/jupyter.sh

Connect to it at - http://localhost:8888


Name: Nextcloud (nextcloud:latest)

~/Termux-Udocker/nextcloud.sh

Connect to it at - http://localhost:2080


Name: ownCloud (owncloud/server:latest)

~/Termux-Udocker/owncloud.sh

Connect to it at - http://localhost:2081


~/Termux-Udocker/calibre-web.sh

Connect to it at - http://localhost:8031

Note

Default Calibre-Web -
username: admin
password: admin123


Name: HTTPD (httpd:latest)

~/Termux-Udocker/httpd.sh

Connect to it at - http://localhost:2082


Name: Redis (redis:latest)

~/Termux-Udocker/redis.sh

Connect to it at - http://localhost:6379


Name: Jellyfin (jellyfin/jellyfin:latest)

~/Termux-Udocker/jellyfin.sh

Connect to it at - http://localhost:8096


~/Termux-Udocker/puter.sh

Connect to it at - http://puter.localhost:4100


ROS - Robot Operating System (ghcr.io/sloretz/ros:jazzy-ros-base)

~/Termux-Udocker/ros.sh

Customize

Change Port

PORT=9080 ~/Termux-Udocker/s-pdf.sh

Add PORT=number before the script. Port must be from 1024~65535.


Run custom commands

To override the default startup commands, append your own commands after the script, like this -

~/Termux-Udocker/s-pdf.sh 'echo hello world; echo hi'

Tips

List containers

udocker ps

Remove containers

udocker rm "container_name"

List images

udocker images

Remove images

udocker rmi "image_name"