Docker oder Virtualbox unter Debian 8

Dieser Artikel behandelt das ordnungsgemäße herunterfahren und starten von virtuellen Maschinen mit Docker oder Virtualbox. Nicht für Einsteiger gedacht!
Seitdem ich mit meinen Servern von ehemals OpenSuse Server in 2013 auf Ubuntu Server umgestiegen bin, musste ich schon einiges neu lernen, aber der Umstieg von Ubuntu 14.04 auf Debian Jessie (8) war auch umfangreicher als gedacht. Auf folgendes Problem bin ich dabei gestossen:

Durch die Umstellung auf systemd als Boot-System wird es etwas komplizierter. Bisher funktionierte es so: Script erstellen, in /etc/init.d kopieren, in webmin aktivieren (oh wie faul!) und fertig.
Das war einmal. Die Scripte brauchen einen neuen Header. Die Scripte, die ich gefunden habe, funktionierten nicht alle so wie gewünscht, deshalb habe ich mir zum Teil eigene gebastelt! Zunächst die Quellen:

Hier ein Beispiel-Script für vbox- Hinweis: Die virtuellen Maschinen im Script müssen angepasst werden!

#!/bin/sh
#chkconfig: 2345 40 60
#description: VirtualBox Maschinen starten
### BEGIN INIT INFO
# Provides:       vboxmachines
# Required-Start:    $local_fs $network
# Required-Stop:     $local_fs
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:    VirtualBox autostart service
### END INIT INFO

    start()
    {
    # virtuelle Maschinen starten
    echo -n "Starte Windows 7 "
    su vbox -c '/usr/bin/VBoxManage startvm "Windows7" --type headless'

    echo -n "Starte Windows XP"
    su vbox -c '/usr/bin/VBoxManage startvm "WindowsXP" --type headless'

    }

    stop()
    {

     echo -n "Speichere VM Windows XP"
     su vbox -c   '/usr/bin/VBoxManage controlvm "WindowsXP" savestate'

     echo -n "Speichere VM Windows 7 "
    su vbox -c '/usr/bin/VBoxManage controlvm "Windows7" savestate'

    }


    case "$1" in
      start)
            start
       ;;
      stop)
              stop
       ;;
      restart|reload)
       stop
       start
       ;;
      *)
            echo $"Usage: $0 {start|stop|restart}"
            exit 1
            ;;
    esac

    exit 0

für docker Maschinen funktioniert folgendes Script sehr gut
(inklusive updaten der Docker Images aus dem Docker hub!)
Natürlich sollten auch hier die Namen der Images hinterlegt werden.

#!/bin/sh
#chkconfig: 345 35 65
#description: Docker Maschinen starten

### BEGIN INIT INFO
# Provides:       dockers
# Required-Start:    docker
# Required-Stop:     docker
# Default-Start:     2 3 4 5
# Default-Stop:      0 1 6
# Description:    Docker Machines autostart service
### END INIT INFO

start()
{
   echo -n "Erstelle neue Container"
   docker run -d --name apache-gateway  -v /home/apache-gateway/keys:/var/keys -v /home/apache-gateway/sites-available:/etc/apache2/sites-available -p 80:80 -p 443:443  sneaky/apache-gateway
   docker run --net=host --name torrent-box -p 81:8112 -P -v /home/dlna:/home -d edgaras/dlna-torrentbox:latest

}
# start

stop()
{
   echo -n "Docker Container stoppen"
   docker stop apache-gateway
} 
# stop

update()
{
   echo -n "Images aktualisieren"
   docker pull sneaky/apache-gateway
   docker pull sneaky/egroupware-extended
} 
#update

delete()
{
   echo -n "Alte Container loeschen"
   docker rm apache-gateway
} 
#delete

case "$1" in
   start)
      update
      delete
      start
   ;;
   stop)
      stop
   ;;
   restart|reload)
      stop
   start
   ;;
   *)
      echo $"Usage: $0 {start|stop|restart}"
      exit 1
   ;;
esac

exit 0

Jetzt gerade fällt mir ein, dass die Maschinen-Namen ja auch in ein Array gelegt werden können… aber das wäre dann eine V2.0 – folgt irgendwann in Zukunft. Bis dahin sind die Scripte zur freien Verfügung!

Die Scripte müssen in

/etc/init.d

kopiert werden und danach mit

update-rc.d dockers defaults

bzw

update-rc.d vboxmachines defaults

aktiviert werden. Falls es zu einem Fehler

insserv: warning: current start runlevel(s) (empty) of script `dockers' overrides LSB defaults (2 3 4 5).
insserv: warning: current stop runlevel(s) (0 1 2 3 4 5 6) of script `dockers' overrides LSB defaults (0 1 6).

Habt ihr vorher schon zuviel herumgebastelt und müsst mit

update-rc.d -f dockers remove
update-rc.d dockers defaults

bzw

update-rc.d -f vboxmachines remove
update-rc.d vboxmachines defaults

das ganze korrigieren.

Advertisements

Ein Gedanke zu “Docker oder Virtualbox unter Debian 8

  1. Hallo Herr Scholz,
    vielen Dank für Ihre interessanten Infos über linuxundmehr. Neben Microsoft-Office habe ich ja LibreOffice auf dem Rechner, was sich bei der einen oder anderen Gelegenheit auch als nützlich erwiesen hat. Im Grunde habe ich jedoch bei meinen EDV-Aktivitäten von Anfang an mit Microsoft Office gearbeitet und bin damit vertraut. Für meine E-Mails nutze ich Thunderbird.
    Für die Umsetzung Ihrer Vorschläge fehlt mir das ausreichende Wissen. Ich traue mich da nicht ran.
    Bei Ihrem nächsten Besuch können wir vielleicht mal etwas ausführlicher darüber sprechen.
    Übrigens, mit winmail opener hatte ich letztlich ein Problem bzw. konnte trotz einiger Versuche die dat Datei nicht öffnen. Auch hierzu bei Ihrem nächsten Besuch etwas ausführlicher.
    Nochmals vielen Dank und freundlicher Gruß
    Alfred Gajewski

    Gefällt mir

Kommentar verfassen

Trage deine Daten unten ein oder klicke ein Icon um dich einzuloggen:

WordPress.com-Logo

Du kommentierst mit Deinem WordPress.com-Konto. Abmelden / Ändern )

Twitter-Bild

Du kommentierst mit Deinem Twitter-Konto. Abmelden / Ändern )

Facebook-Foto

Du kommentierst mit Deinem Facebook-Konto. Abmelden / Ändern )

Google+ Foto

Du kommentierst mit Deinem Google+-Konto. Abmelden / Ändern )

Verbinde mit %s