Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/diogok/termux-qemu-alpine-docker
Run Docker on Alpine, on Qemu, on Termux, on Android.
https://github.com/diogok/termux-qemu-alpine-docker
alpine android docker qemu termux
Last synced: 24 days ago
JSON representation
Run Docker on Alpine, on Qemu, on Termux, on Android.
- Host: GitHub
- URL: https://github.com/diogok/termux-qemu-alpine-docker
- Owner: diogok
- Created: 2019-07-14T23:53:13.000Z (over 5 years ago)
- Default Branch: master
- Last Pushed: 2023-02-15T12:46:30.000Z (almost 2 years ago)
- Last Synced: 2024-12-15T20:58:48.671Z (28 days ago)
- Topics: alpine, android, docker, qemu, termux
- Language: Shell
- Size: 2.93 KB
- Stars: 167
- Watchers: 6
- Forks: 26
- Open Issues: 8
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# Termux + Qemu + Alpine + Docker + VNC
This is a setup for runing docker on android, by the means of Termux, running alpine in qemu and them enabling docker on the Alpine.
This was only tested on Samsung S10e.
## [Install Termux](https://termux.com)
And start it.
## Setup VNC + Fluxbox
First step was to setup VNC and Fluxbox, which is quite easy following [termux VNC guide](https://wiki.termux.com/wiki/Graphic_Environment):
Enable x11 repository, install tiger-vnc and fluxbox:
```
pkg install x11-repo
pkg install tigervnc fluxbox
```Them start vncserver, it will ask you to setup password and other options, just follow on screen instructions:
```
vncserver
```Xvnc will them be running in background. We can now start fluxbox:
```
DISPLAY=":1" fluxbox
```This will start fluxbox on the Xvnc server and lock the current terminal. You can also append an "&" on that command to start it in background.
You can stop fluxbox on the remote desktop.
You can stop vnc:
```
vncserver -kill :1
```To access your VNC server, choose your RDP client (like Vinagre on Ubuntu, or VNC Viewer on Android) and connect to your phone IP on port 5901 (for display :1).
To discover your phone IP on the wifi:
```
ip addr show wlan0
```Inside Fluxbox you can right-click on the desktop to get a menu and launch stuff like "aterm".
## Setup QEMU
Qemu setup is quite easy, just small gotcha is that I had to use qemu from x11-repo instead of unstable headless, and do not really know why.
Installing Qemu:
```
pkg install unstable-repo
pkg install qemu-system-x64_64 qemu-utils
```That is it.
## Preparing to install Alpine on Qemu
You will need the Alpine *virtual* ISO, that you can download from [alpine website](https://alpinelinux.org). Save it as alpine.iso to easy the typing:
```
pkg install curl
curl http://dl-cdn.alpinelinux.org/alpine/v3.10/releases/x86_64/alpine-virt-3.10.1-x86_64.iso -o alpine.iso
```Them you will need an image disk for the alpine installation to reside in:
```
qemu-img create -f qcow2 alpine.img 5g
```## Starting Alpine installation on QEMU
Them you can launch Qemu installation of Alpine. I fyou are on an XVNC session, it will launch a QEMU window.
```
qemu-system-x86_64 -hda alpine.img -cdrom alpine.iso -boot d -m 512
```If you want to keep on the same terminal (not launching a new window) you can append "-nographic" to that last command.
If you are on a QEMU window you can click it to grab focus, and can CTRL+ALT+G to release focus. You can also CTRL+ALT+F to go fullscreen.
On a terminal, you can stop emulation with CTRL+A+X. There are several others Ctrl+A commands.
It will take a while for alpine to boot, but will them present you with a "Login:" terminal, just enter "root" to start.
## Setting up networking on Alpine on Qemu
This is a part that I had trouble, before starting setup inside alpine, you should setup proper network.
First, setup the interfaces, by editing */etc/network/interfaces* to have the following content:
```
auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
```Save it, and restart the alpine network:
```
/etc/init.d/networking restart
```You should get an IP from the Qemu user network. Please be aware that _ping_ does not work on this setup.
Them, and only them, you also need to add DNS servers, by editing */etc/resolv.conf* to the following:
```
nameserver 8.8.8.8
```You can test by trying to setup just the repositories:
```
setup-apkrepos
```If this gives you a list of repos to choose from (About 40+), them it worked.
## Installing Alpine
To start installation:
```
setup-alpine
```Just follow on screen instructions with attention. Be sure to choose to install on disk "sda" when prompted.
Once the installation is complete, shutdown Alpine by issuing halt"
```
halt
```When it says system halted, exit Qemu (either by CTRL+Alt+g and closing window, or by ctrl+a+x on the terminal).
## Running installed Alpine on Qemu
To start alpine, simply run:
```
qemu-system-x86_64 -hda alpine.img -boot c -m 512
```It will be take a while and give you a login prompt for the root user you setup.
## Installing Docker on Alpine
The reason I installed it all is to [run docker on alpine](https://wiki.alpinelinux.org/wiki/Docker).
On alpine, edit /etc/pkg/repositories and uncomment comunity repository, them install docker:
```
apk update
apk add docker
```Start the service and enable it on boot:
```
service start docker
update-rc enable docker
```Test it out
```
docker info
docker run alpine echo hello
```## How slow is it?
On my machine a simple hello world take 1s to echo, while on this setup it takes 25s. Well, at least it works...