Skip to content

Latest commit

 

History

History
199 lines (143 loc) · 4.8 KB

README.md

File metadata and controls

199 lines (143 loc) · 4.8 KB

Docker sur Termux [dans une VM]

Source

Préparation

apt update
apt upgrade -y 
apt install wget

Tuto

Installation de QEMU

pkg install qemu-utils qemu-common qemu-system-x86_64-headless

Téléchargement d'Alpine Linux

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 

Create disk (note it won't actually take 4GB of space, more like 500MB)

Création du disque

Note Cela ne va pas prendre 4 Go d'espace, mais plutôt 500 Mo

 qemu-img create -f qcow2 alpine.img 4G

Lancement de la VM

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

Depuis la VM

Login

Login avec l'utilisateur root, aucun mot de passe

Setup réseau

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

Suite de l'installation

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"

Correction de setup-disk

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

Finalisation setup alpine

setup-alpine -f answerfile
poweroff

Redémarrage sans le CD d'installation

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

Depuis la VM (2)

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

installation de docker (enfin !)

apk update && apk add docker
service docker start
rc-update add docker

Utilisation

  • 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