# Docker

#### Vorbereitung des Host 

Während der Installation ist womöglich der ein oder andere Neustart des Rechners notwendig.

Eine PowerShell Konsole als Admin ausführen und das folgende Script ausführen, um Hyper-V zu aktivieren:

```Powershell
Enable-WindowsOptionalFeature -Online -FeatureName $("Microsoft-Hyper-V", "Containers") -All
```

Sofern noch nicht geschehen, muss nun noch einmalig das Modul **BcContainerHelper** installiert werden. In der gleichen Konsole die folgende Zeile ausführen:

```wp-block-preformatted
Install-Module BcContainerHelper -force
```

#### Docker Installation

Die aktuellste Docker Version [**hier**](https://www.docker.com/get-started) herunterladen und installieren. Spätestens nach dieser Installation ist ein Neustart notwendig.

Nach der Installation muss Docker für die Verwendung von Windows Containern konfiguriert werden. Dafür einen Rechtsklick auf das Docker Symbol (Taskleiste) [![image-1633589019291.png](https://docs.squeeze.one/uploads/images/gallery/2021-10/scaled-1680-/image-1633589019291.png)](https://docs.squeeze.one/uploads/images/gallery/2021-10/image-1633589019291.png) ausführen und anschließend auf [![image-1633589198977.png](https://docs.squeeze.one/uploads/images/gallery/2021-10/scaled-1680-/image-1633589198977.png)](https://docs.squeeze.one/uploads/images/gallery/2021-10/image-1633589198977.png) klicken.

#### Erstellung eines BC Containers

Mit Hilfe der folgenden zwei PowerShell Scripts lassen sich jeweils BC Sandboxes erstellen. **BC 19 On-Prem** erstellt einen Container mit der aktuellsten Version, **BC specific version On-Prem** lädt das Image herunter, welches der im Script angegebenen Version am nächsten ist (hier: 17.11.30469.0).

Kurz nach dem Start des Scripts wird nach einem Benutzernamen und einem Passwort verlangt - diese Daten sind frei wählbar und dienen der Authentifizierung des Benutzers am BC Server.

Im Anschluss der Installation ist BC unter der Adresse http://*$containerName*/BC zu erreichen - also für **BC 19 On-Prem** z.B. http://bc19onprem/BC

##### BC 19 On-Prem

```Powershell
$containerName = 'bc19onprem'
$credential = Get-Credential -Message 'Using UserPassword authentication. Please enter credentials for the container.'
$auth = 'UserPassword'
$artifactUrl = Get-BcArtifactUrl -type 'OnPrem' -country 'de' -select 'Latest'
New-BcContainer `
    -accept_eula `
    -containerName $containerName `
    -credential $credential `
    -auth $auth `
    -artifactUrl $artifactUrl `
    -imageName 'bc19image' `
    -memoryLimit 8G `
    -isolation hyperv `
    -vsixFile (Get-LatestAlLanguageExtensionUrl) `
    -updateHosts
```

##### BC specific version On-Prem

```Powershell
$containerName = 'bc17onprem'
$credential = Get-Credential -Message 'Using UserPassword authentication. Please enter credentials for the container.'
$auth = 'UserPassword'
$artifactUrl = Get-BcArtifactUrl -type 'OnPrem' -version '17.11.30469.0' -country 'de' -select 'Closest'
New-BcContainer `
    -accept_eula `
    -containerName $containerName `
    -credential $credential `
    -auth $auth `
    -artifactUrl $artifactUrl `
    -memoryLimit 8G `
    -isolation hyperv `
    -vsixFile (Get-LatestAlLanguageExtensionUrl) `
    -updateHosts
```

##### BC specific version On-Prem (SSL)

```Powershell
$containerName = 'bc18onprem'
$credential = Get-Credential -Message 'Using UserPassword authentication. Please enter credentials for the container.'
$auth = 'UserPassword'
$artifactUrl = Get-BcArtifactUrl -type 'OnPrem' -version '18.6.30510.0' -country 'de' -select 'Closest'
New-BcContainer `
    -accept_eula `
    -containerName $containerName `
    -credential $credential `
    -auth $auth `
    -artifactUrl $artifactUrl `
    -imageName 'bc18image' `
    -usessl -installCertificateOnHost `
    -memoryLimit 8G `
    -isolation hyperv `
    -vsixFile (Get-LatestAlLanguageExtensionUrl) `
    -updateHosts
```