Docker

Diese Hilfe beschreibt kurz die Installation, Einrichtung und Nutzung von Docker Engine.

Eine Übersicht über die Powershell Befehle finden Sie auf dieser Seite im unteren Bereich.

Im DevOps Projekt Team CB befindet sich die Repo Docker Scripts. Mit dem Script ist es möglich, einen Docker Container ganz einfach zu erstellen (mit Image Beispielen).

Vorweg

Damit die neuste Docker Application auch sauber läuft, muss sicher gestellt werden, dass Windows mindestens auf Version 1903 geupdatet wird.

Falls bei der Installation Hyper-V nicht automatisch aktiviert wird, kann man dies über das BIOS oder Windows Feature aktiviert werden.

HyperV

Docker Engine

Der Docker Desktop wird nicht mehr benutzt, da dieser für Unternehmen ab dem 31. Januar 2022 kostenpflichtig ist. Deshalb muss jetzt auf den Docker Engine umgestellt werden. Die Docker Engine ist nur ein Teil des Docker Desktop.

Docker Engine ist eine Open-Source-Containerisierungstechnologie zum Erstellen und Containerisieren Ihrer Anwendungen. Docker Engine fungiert als Client-Server-Anwendung.

Installation

Da der Docker Desktop nicht mehr benutzt wird, wird hier die Installation der Docker Engine vorgezeigt.

Wenn der Docker Desktop noch auf dem Computer vorhanden ist, so muss dieser deinstalliert werden. Alle Container müssen auch noch gelöscht werden.

Als kleine Hilfe, kann man sich direkt schon die Extension "Docker" in Visual Studio Code runterladen. Dies ermöglicht später, dass erstellen,löschen, starten oder stoppen von Docker Containern.

Nun geht es los mit der Installation.

Schritt 1 : Man öffnet die Website(https://github.com/microsoft/nav-arm-templates/blob/master/InstallOrUpdateDockerEngine.ps1) und kopiert sich das Script, welches auf der Seite angegeben ist.

Docker Engine Script

Schritt 2 : Man öffnet die Windows Powershell ISE(als Administrator ausführen) und fügt das kopierte Script in den Konsolenbereich ein. Mit "Enter" bestätigt man das Script.

PowershellISE

Wenn die Installation erfolgreich abgeschlossen ist, muss für die Nutzung von Docker Engine der Rechner neu gestartet werden.

Schritt 3 : Damit man mit Docker-Images von acadon(z.B. Sidebar) arbeiten kann, muss man eine neue Datei erstellen, die man deamon.json nennen soll. Dann kopiert man den Inhalt, der unter "Add deamon.json" auf der Website(http://docs.acadon.de/timber/1.0.0.0/dev/howdoi/InstallDocker.html) steht.

Add Deamon Diesen fügt man dann in die vorher erstellte Datei ein. Dann speichert man die deamon.json unter C:\ProgramData\docker\config\ ab. Der Docker Engine Service muss dann wieder neu gestartet werden.

BcContainerHelper

Mit folgendem Powershell Befehl wird das Modul installiert (vorzugsweise mit Admin Rechten):

Install-Module bccontainerhelper -force
Get-InstalledModule bccontainerhelper

Hinweis: Ist der BcContainerHelper, sollte vor dem dem deinstallieren mit UnInstall-Module die Docker-Container deinstalliert werden.

Essentielle Docker Befehle

Im Umgang mit Docker und dessen Container kann es hin und wieder zu Problemen kommen. Diese Sammlung an Docker Befehlen sind für den Umgang mit Docker essentiell. Die Befehle werden in Powershell ausgeführt. Es muss immer mit Administrationsrechten gestart werden.

Docker Einrichtung

Install-Module bccontainerhelper -force

Dieser Befehl sorgt dafür, dass überhaupt mit Containern gearbeitet werden kann.

Darauf folgend sollte man folgenden Befehl ausführen:

Check-NavContainerHelperPermissions -fix

Klingt danach, dass Permissions für den bccontainerhelper konfiguriert werden, das tut es auch.

Docker Handling

Statt der ID kann auch der Name eines Containers/ eines Images verwendet werden.

Um sich manuell ein Image für Docker zu ziehen, gibt es folgenden Befehl:

docker pull [Image-URL]

Um eine Auflistung aller Images zu bekommen, die zur Zeit lokal hinterlegt sind:

docker images

Um eine Auflistung aller Container zu bekommen, die zur Zeit aktiv sind:

docker ps

Um eine Auflistung aller Container zu bekommen, die lokal verfügbar sind:

docker ps -a

Um einen Container umzubennen:

docker rename [ContainerID] [NeuerName]

Um einen Container neu zu starten:

docker restart [ContainerID]

Um einen Container zu entfernen:

docker rm [ContainerID]

Um ein Image zu entfernen:

docker rmi [ImageID]

Um einen Container zu starten:

docker start [ContainerID]

Um einen Container zu stopper:

docker stop [ContainerID]

Um Dateien in den Container zu kopieren und auch zurück, ist folgender Befehl hilfreich:
Dies funktioniert nur, wenn der Container gestoppt wurde!

docker cp [ContainerID:Source_Path] [Destination_Path]
docker cp [Source_Path] [ContainerID:Destination_Path]

Beispiel:

in den Container raus: docker cp 12345678:\test\text.docx C:\test\text.docx
aus den Container rein: docker cp C:\test\text.docx 12345678:\test\text.docx
Copy-FileToNavContainer -containerName -localPath -containerPath

Der Befehl Copy-FileToNavContainer kopiert jedoch nur einzelne Dateien, ein Verzeichnis zu kopieren, ist nicht möglich (Stand NavContainerHelper 07.2020).

Inside a Container

Wenn man hier Get-NAV oder Set-NAV eingibt und den Tabulator betätigt, werden alle verfügbaren Optionen durchgeblättert.

Um im Container selber Befehle auszuführen:

Enter-BCContainer [ContainerID]

Es öffnet sich eine separate Eingabeaufforderung aus dem Container.

Um im Container ServerInstanz Infos auszugeben:

Get-NAVServerInstance [ServerInstanz(Optional)]

Wenn keine ServerInstanz angegeben wird, werden alle Informationen zu allen ServerInstanzen ausgegeben.

Um im Container die ServerInstanz Konfiguration auszugeben:

Get-NAVServerConfiguration [ServerInstanz]

Dieselben Befehle kann man auch mit Set aufrufen, wenn man Änderungen vornehmen will:

Set-NAVServerInstance [ServerInstanz]
Set-NAVServerConfiguration [ServerInstanz]
Set-NavServerConfiguration [ServerInstanz] -KeyName [Name des Parameters] -KeyValue [Wert]

Beispiel: Set-NAVServerConfiguration NAV -KeyName EnableDebugging -KeyValue true

Um das ServiceTier neu zu starten:

Restart-NAVServerInstance [ServerInstanz]

Die Sidebar ermöglicht es, auch auf einfachem Wege Container zu erstellen, zu starten, zu stoppen und zu entfernen.

Container Fonts

Es kommt vor, dass bspw. in Reports verschiedenste Fonts oder auch BarCodes genutzt werden. Diese können bei der Ausgabe aus einem Container heraus nicht immer richtig dargestellt werden, da der Container nur wenige Fonts installiert bekommt.

Um die richtigen Fonts in den Container zu transferieren, muss folgender Befehl ausgeführt werden:

Add-FontsToNavContainer -containerName [ContainerName] -path "[Pfad zum Font]"

Dieser Befehl kopiert nicht nur den Font in den Container, sondern installiert diesen auch gleich mit.

Hilfreiche Links

Auflistung aller Docker Befehle mit entsprechenden Beispielen und Hilfen:

  • https://docs.docker.com/engine/reference/commandline/docker/

Docker BC Images

  • https://www.waldo.be/2019/01/18/list-all-business-central-docker-image-tags-on-microsoft-container-services/

  • https://www.waldo.be/2019/01/24/where-to-find-the-microsoft-dynamics-365-business-central-and-nav-docker-images/

acadon Hilfe zu Docker

  • http://docs.acadon.de/intern/sidebar/setup/docker.html

Zurück zur Startseite Home

Back to top Generated by DocFX