====== Container Alpine Linux in Systemd-nspawn ====== Autore: **//Fabio Di Matteo//** \\ Ultima revisione: **// 12/09/2025 11:32 //** // // Alpine linux non รจ basata su systemd dunque il sottosistema di container di systemd (systemd-nspawn) non la supporta del tutto. Di seguito alcune soluzioni al problema. Dovrebbe bastare lanciare systemd-nspawn da riga di comando senza passare per machinectl. In modo tale da "ereditare" diverse caratteristiche del sistema host reale. Scaricare il miniroot fs che viene preparato dal progetto : [[https://www.alpinelinux.org/downloads/|Alpine]] e scompattarlo in una cartella ("./alpine" in questo esempio). Ecco un esempio. lancio solo l'applicazione che mi serve. /usr/bin/systemd-nspawn -D ./alpine/ --as-pid2 /bin/sh ===== Una unit per lanciare il container all'avvio ===== Uso come entrypoint sul container uno script (/usr/local/bin/start.sh). **/etc/systemd/system/alpine-web.service** [Unit] Description=Run a Alpine web server container Wants=network-online.target After=network-online.target [Service] Type=simple ExecStart=/usr/bin/systemd-nspawn -D /mnt/alpine/ --as-pid2 /usr/local/bin/start.sh ExecStop=/usr/bin/machinectl terminate Alpine-web [Install] WantedBy=multi-user.target Esempio di entrypoint : **start.sh** #!/bin/bash /usr/sbin/sshd -p 3030 & /usr/bin/prosody --nodaemon --log=stdout --loglevel=debug --config /etc/prosody/prosody.cfg.lua Ricordarsi di generare le chiavi di sshd con **ssh-keygen -A** . Lanciare il container con : systemctl start alpine-web Lanciare automaticamente il container con : systemctl enable alpine-web Per killare il container usare ripetutatamente il comando : machinectl kill alpine-web oppure entrare in ssh sul container e digitare "poweroff" ===== Avviare al boot se il container risiede su disco esterno ===== Vedere la sezione "Container che risiedono su un disco esterno" : [[sistema:systemd:avviare_container_al_boot|Avviare container systemd-nspawn al boot]]