Skip to main content

Docker Desktop for Windows mit WSL - Backend

Docker Desktop ist kostenpflichtig

1. WSL - Installation

Hypervisor aktivieren. Dieser ist für WSL zwingend notwendig. Installation siehe: https://docs.microsoft.com/de-de/virtualization/hyper-v-on-windows/quick-start/enable-hyper-v

Es muss zuerst WSL installiert werden, bevor wir uns um Docker kümmern können.

    Powershell als Administrator ausführen

    WSL installieren

    wsl --install

    Distribution der Wahl installieren (bei Fehler Powershell erneut ohne Adminrechte öffnen)

    wsl --install -d <Distributions Name>

    WSL2 als Default setzen

    wsl --set-default-version 2

    einstellen, dass die Distribution immer mit WSL2 startet 

    wsl --set-version <Distributions Name> 2

     

     

    2. WSL - Konfiguration

    1.  für Proxy - Einstellungen folgende Einträge in /etc/environment

      1. http_proxy=http://webproxy01.gisa.dmz:8080
        https_proxy=http://webproxy01.gisa.dmz:8080
        no_proxy="127.0.0.1,localhost,.lej.eis.network,.eis.network,10.0.0.0/8,192.168.0.0/16,194.113.76.29,194.113.76.251,217.242.214.197,172.28.119.15,.sit-gisa.intern"
      2. für apt Proxy extra eintragen in /etc/apt/apt.conf.d/proxy.conf

        Acquire::http::Proxy "http://webproxy01.gisa.dmz:8080";
      3. Linux update

        sudo apt update && sudo apt dist-upgrade

      3.  Docker - Installation

      Installationsdatei aus der offiziellen Docker - Webseite herunterladen und  ausführen Install Docker Desktop on Windows | Docker Documentation

      3.1. Lokale Benutzerverwaltung anpassen

      Damit die tägliche Arbeit leichter fällt, kann die lokale Benutzerverwaltung angepasst werden. Andernfalls sind fortlaufende Anmeldungen als Administrator und Wechsel zum Benutzerkonto notwendig.

      3.1.1. Microsoft Management Console (MMC) starten

      (Warnung) BEVOR die Installation mit "Close and log out" beendet wird, die Microsoft Management Console (MMC) mit Adminrechten starten:

      (ansonsten muss man sich zweimal an- und abmelden)

      image.png

    3.1.2. Lokalen Computer in der MMC hinzufügen

    Datei → Snap-In hinzufügen → Computerverwaltung → Hinzufügen → Lokaler Computer

    image.png

    3.1.3. Eigenen Benutzer in MMC berechtigen

    Unter "Lokale Benutzer und Gruppen" → Unterordner Gruppen wählen, Detailansicht zur Rechten füllt sich, ua. mit docker users → Kontextmenü → Eigenschaften → Hinzufügen.

    Als Objektnamen die Benutzerkennung eingeben, auf "Namen überprüfen" klicken und den enstprechenden User auswählen.

    image.png

    3.1.4. MMC schließen und Speichern

    • Fenster schließen
    • die Frage nach Speicherung unbedingt mit Ja beantworten und als Speicherort ein lokales Laufwerk und ein Verzeichnis wählen, auf das man selbst Berechtigungen hat (mmc wieder starten und mit selber Konfiguration weiter arbeiten)

    3.2. Installation beenden

    Die Docker-Installation mit "Close and log out" beenden. Danach wieder am Account anmelden.

    Das Welcome-Fenster von Docker schließen.

    image.png

    3.3. Docker-Einstellungen vornehmen

    Über die Taskleiste mit Rechtsklick auf das Docker-Symbol die Einstellungen öffnen.

    image.png

    Folgende Einstellungen vornehmen:

    • Proxy, am wichtigsten von allen, webproxy01.gisa.dmz:8080, Ausnahmen: 10.0.0.0/8,192.168.0.0/16,.lej.eis.network,.eis.network
    • Daemon: https://docker.lej.eis.network als Registry Mirror angeben – sorgt für Zugriff auf EXXETA-Docker-Images   (Warnung) kein Leerzeichen hinter Registry (Warnung)
      • Ab v19.03.8 soll die docker-registry im Docker Engine angegeben werden.

      • image.png

      • {
          "registry-mirrors": [
            "https://docker.foo.network"
          ],
          "insecure-registries": [],
          "debug": true,
          "experimental": false
        }

        image.png


        Danach muss Docker mit Apply neu gestartet werden.

        3.4. WSL - Integration

        1. Docker öffnen und auf Settings gehen
        2. zu Settings > Resources > WSL Integration gehen
        3. Häkchen setzen auf "Enable Integration with my default WSL distro"
        4. unter "Enable integration with additional distros" installierte Distros einschalten
        5. refresh drücken
        6. unten rechts auf den Button "Apply & Restart" klicken

        image.png

    Docker Testen

    1. Powershell öffnen
    2. WSL öffnen

      wsl
    3. docker hello-world image herunterladen

      docker pull hello-world
    4. Image ausführen

      docker run hello-world

       

    5. image.png

      Docker wurde erfolgreich installiert  (Lächeln)

    5. Visual Studio Code Einbindung

    1. Remote Development extension installieren in VSC Remote Development - Visual Studio Marketplace
    2. WSL starten

      sudo apt update
      sudo apt install wget ca-certificates
    3. nun in VSC unten links die grüne Ecke anklicken und auf New WSC Window drücken

    6. Troubleshooting


    "ANMELDUNG FEHLGESCHLAGEN: DER BENUTZER BESITZT NICHT DEN BENÖTIGTEN ANMELDETYP AUF DIESEM COMPUTER."

    ein bestehender Bug, der bis jetzt noch nicht behoben wurde

    über Powershell als Administrator Hyper-V Machine Management Service neu starten

    powershell restart-service vmms


    In diesem Github Issue sind noch weitere Möglichkeiten aufgelistet Hyper - V neuzustarten


    "Windows Subsystem For Linux has no Installed Distributions"

    Sollte die Distribution bereits installiert sein, aber beim Starten von WSL erscheint diese Fehlermeldung, so startet die Distribution evtl. nur mit WSL1. Folgender Befehl lässt die Distribution auf WSL2 starten:

    wsl --set-version <Distributions Name> 2

    Linux Distribution Installation schlägt fehl

    ohne Admin - Rechte diesen Befehl ausführen

    wsl --install -d Ubuntu


    Namensauflösung schlägt fehl

    Wenn WSL2 mit einem VPN gestartet wird, kann man sich nicht ins Internet verbinden, da die Namensauflösung fehlschlägt. Das liegt daran, dass WSL beim starten automatisch über /etc/resov.conf einen Default - Nameserver setzt.

    Bitte diese Schritte befolgen, um den richtigen Nameserver zu setzen.