- Docker sur Termux [dans une VM]
apt update
apt upgrade -y
apt install wget
pkg install qemu-utils qemu-common qemu-system-x86_64-headless
Version 3.12 x86_64 virtual : 39 Mo
mkdir alpine && cd $_
wget http://dl-cdn.alpinelinux.org/alpine/v3.12/releases/x86_64/alpine-virt-3.12.3-x86_64.iso
check sha256sum
wget http://dl-cdn.alpinelinux.org/alpine/v3.12/releases/x86_64/alpine-virt-3.12.3-x86_64.iso.sha256
sha256sum -c alpine-virt-3.12.3-x86_64.iso.sha256
Note Cela ne va pas prendre 4 Go d'espace, mais plutôt 500 Mo
qemu-img create -f qcow2 alpine.img 4G
qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 \
-drive if=pflash,format=raw,read-only,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-netdev user,id=n1,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 \
-cdrom alpine-virt-3.12.3-x86_64.iso \
-nographic alpine.img
Login avec l'utilisateur root
, aucun mot de passe
setup-interfaces
Puis appuyer sur entrée
pour chaque question pour utiliser les valeurs par défaut
ifup eth0
echo "nameserver 192.168.1.1 nameserver 1.1.1.1" > /etc/resolv.conf
Créez un fichier answerfile
avec le contenu suivant :
(cat > answerfile
) ou avec la commande suivante :
wget https://gist.githubusercontent.com/oofnikj/e79aef095cd08756f7f26ed244355d62/raw/answerfile
KEYMAPOPTS="us us"
HOSTNAMEOPTS="-n alpine"
INTERFACESOPTS="auto lo
iface lo inet loopback
auto eth0
iface eth0 inet dhcp
hostname alpine
"
TIMEZONEOPTS="-z UTC"
PROXYOPTS="none"
APKREPOSOPTS="http://dl-cdn.alpinelinux.org/alpine/v3.18/main http://dl-cdn.alpinelinux.org/alpine/v3.18/community"
SSHDOPTS="-c openssh"
NTPOPTS="-c busybox"
DISKOPTS="-v -m sys -s 0 /dev/sda"
Pour activer la sortie de la console série au démarrage
sed -i -E 's/(local kernel_opts)=.*/\1="console=ttyS0"/' /sbin/setup-disk
setup-alpine -f answerfile
poweroff
qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 \
-drive if=pflash,format=raw,read-only,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-netdev user,id=n1,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 \
-nographic alpine.img
Test
qemu-system-x86_64 -machine q35 -m 6144 -smp cpus=6 -cpu qemu64 \
-drive if=pflash,format=raw,read-only,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-netdev user,id=n1,hostfwd=tcp::2222-:22,hostfwd=tcp::8000-:8000 -device virtio-net,netdev=n1 \
-nographic alpine.img
Une fois connecté en tant que root
avec le mot de passe défini lors de l'installation
(Je ne sais pas pourquoi, mais il faut le faire à chaque fois)
echo "nameserver 192.168.1.1 nameserver 1.1.1.1" > /etc/resolv.conf
apk update && apk add docker
service docker start
rc-update add docker
- Lancer la VM (depuis le dossier Alpine)
qemu-system-x86_64 -machine q35 -m 1024 -smp cpus=2 -cpu qemu64 \
-drive if=pflash,format=raw,read-only,file=$PREFIX/share/qemu/edk2-x86_64-code.fd \
-netdev user,id=n1,hostfwd=tcp::2222-:22 -device virtio-net,netdev=n1 \
-nographic alpine.img
- Quitter la VM
poweroff
ou Ctrl + a
puis x
- Autre
Ctrl + a
puis c
pour accéder à la console de QEMU