⚠️ Внимание: Производительность Docker внутри эмулятора QEMU на Android будет ограничена. Для серьёзной работы с Docker рекомендуется использовать облачный сервер или полноценный ПК. Этот вариант подходит для ознакомления, тестирования или экспериментов.
pkg update && pkg upgrade -y
pkg install wget root-repo qemu-utils qemu-common qemu-system-x86-64-headless
mkdir ~/alpine && cd ~/alpine
- Переходим на: https://www.alpinelinux.org/downloads/
- Копируем ссылку на x86_64 Virtual ISO.
- Загружаем ISO:
# Пример для версии 3.22.1:
wget -O alpine.iso https://dl-cdn.alpinelinux.org/alpine/v3.22/releases/x86_64/alpine-virt-3.22.1-x86_64.iso
qemu-img create -f qcow2 alpine.qcow2 15G
qemu-system-x86_64 \
-machine q35 \
-cpu qemu64 \
-smp 2 \ # Количество ядер (nproc покажет доступное)
-m 1G \ # Память в МБ (free -m)
-device virtio-net,netdev=n1 \
-netdev user,id=n1\
-drive if=pflash,format=raw,readonly=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-drive file=alpine.qcow2,if=virtio \
-cdrom alpine.iso \
-nographic
# Настройка DNS (замените <YOUR_LOCAL_GATEWAY> на ваш шлюз)
echo "nameserver <YOUT_LOCAL_GATEWAY>" > /etc/resolv.conf
echo "nameserver 1.1.1.1" > /etc/resolv.conf
# Настройка репозиториев
echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/main" > /etc/apk/repositories
echo "https://dl-cdn.alpinelinux.org/alpine/v3.22/community" >> /etc/apk/repositories
setup-alpine
После установки выполните
poweroff
для выключения VM
echo "qemu-system-x86_64 \
-machine q35 \
-cpu qemu64 \
-smp 2 \
-m 1G \
-device virtio-net,netdev=n1 \
-netdev user,id=n1,hostfwd=tcp::2222-:22,hostfwd=tcp::3001-:3001,hostfwd=tcp::8080-:8080 \
-drive if=pflash,format=raw,readonly=on,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-drive file=alpine.qcow2,if=virtio \
-nographic" >> ~/alpine/run_qemu.sh
chmod +x ~/alpine/run_qemu.sh
3001
- основной порт для работы с Docker API8080
- дополнительный порт для веб-сервисов (например, nginx)2222
- порт для SSH-доступа к виртуальной машине
bash ~/alpine/run_qemu.sh
apk update && apk upgrade
apk add docker docker-cli-compose
service docker start && service docker stop
dockerd -H tcp://0.0.0.0:3001 --iptables=false
--iptables=false
необходимо из-за ограничений QEMU user networking.
pkg install docker docker-compose
echo "export DOCKER_HOST=tcp://127.0.0.1:3001" >> ~/.bashrc
source ~/.bashrc
# Запуск nginx
docker run -d --name nginx -p 8080:80 nginx
# Просмотр контейнеров
docker ps -a
# Остановка и удаление
docker stop nginx && docker rm nginx