Quick And Dirty
Copy And Paste -Sammlung

Create Registry
rem docker run -d -p 5000:5000 --restart=always --name registry -v D:/DockerRegistry:/var/lib/registry registry:2 

 docker run -d -p 5000:5000 --restart=always --name registry registry:2 

 You will need to save the Docker image as a tar file: 

 docker save -o <path for generated tar file> <image name> Then copy your image to a new system with regular file transfer tools such as cp, scp or rsync(preferred for big files). After that you will have to load the image into Docker: 

 docker load -i <path to image tar file> PS: You may need to sudo all commands. 

 EDIT: You should add filename (not just directory) with -o, for example: 

 [Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine") docker load -i d:\transfer\registry.tar docker save -o c:/myfile.tar centos:16 

 Deaktivieren lässt sich die Container-Unterstützung mit: 

 [Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", $null, "Machine")

Install Docker ee
Manuell http://man.hubwiz.com/docset/Docker.docset/Contents/Resources/Documents/docs.docker.com/install/windows/docker-ee.html 

 --versionen https://dockermsft.blob.core.windows.net/dockercontainer/DockerMsftIndex.json 

 --install # Stop Docker service Stop-Service docker # Extract the archive. Expand-Archive docker-18.09.5.zip -DestinationPath $Env:ProgramFiles -Force 

 # Clean up the zip file. Remove-Item -Force docker-18.09.5.zip 

 # Install Docker. This requires rebooting. $null = Install-WindowsFeature containers 

 # Add Docker to the path for the current session. $env:path += ";$env:ProgramFiles\docker" 

 # Optionally, modify PATH to persist across sessions. $newPath = "$env:ProgramFiles\docker;" + [Environment]::GetEnvironmentVariable("PATH", [EnvironmentVariableTarget]::Machine) 

 [Environment]::SetEnvironmentVariable("PATH", $newPath, [EnvironmentVariableTarget]::Machine) 

 # Register the Docker daemon as a service. dockerd --register-service 

 # Start the Docker service. Start-Service docker 

 ---------------------------------------------------------- Der einfachste Weg, um in Windows Server 2019 die Container-Funktion zu installieren besteht darin, dass der Server über eine Internetverbindung verfügt, und über diesen Weg der Download der notwendigen Komponenten bei Docker erfolgt. 

 Auch Container-Images oder andere Funktionen lassen sich über das Internet, zum Beispiel mit der PowerShell recht einfach auf Windows Server 2019 installieren. Zunächst sollte der Docker-Microsoft PackageManagement Provider aus der PowerShell-Gallery auf dem Server installiert werden: 

 mofcomp 

 Danach wird die aktuelle Docker-Engine installiert: 

 Install-Package -Name docker -ProviderName DockerMsftProvider 

 Die Installation muss noch bestätigt werden, danach wird Docker Enterprise auf dem Server integriert. Mit der PowerShell kann Docker in Windows Server 2019 auch aktualisiert werden: 

 Install-Package -Name Docker -ProviderName DockerMsftProvider -Update -Force 

 Start-Service Docker 

 Nach der Installation sollte der Server neu gestartet werden: 

 Restart-Computer -Force 

 Die erfolgreiche Installation kann ebenfalls in der PowerShell überprüft werden: 

 Get-Package -Name Docker -ProviderName DockerMsftProvider 

 Wenn die Installation erfolgreich durchgeführt wurde, steht in der PowerShell und der Eingabeaufforderung auch der Befehl "docker" zur Verfügung. Mit diesem kann die installierte Version von Docker überprüft werden: 

 docker --version 

 In einem weiteren Beitrag beschäftigen wir uns damit, wie Linux- und Windows-Container mit Docker auf Windows Server 2019 betrieben werden können. ---------------------------------------------------------------------------------------------------------------------------------------------------------- 

 inux-Container in Windows Server 2019 betreiben 

 Windows-Container stellen auf Windows Server 2019 kein Problem dar. Wer Linux-Container betreiben will, benötigt das "LinuxKit". Das ist erst ab Windows Server 2016 Build 16278 auf in Windows Server 2019 verfügbar. In Windows Server 2019 kann die Unterstützung von Linux-Containern mit dem folgenden Befehl aktiviert werden: 

 [Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", "1", "Machine") 

 Anschliessend muss der Dienst neu gestartet werden: 

 Restart-Service docker 

 Deaktivieren lässt sich die Container-Unterstützung mit: 

 [Environment]::SetEnvironmentVariable("LCOW_SUPPORTED", $null, "Machine") 

 Linux-Container auf Windows Server 2019 benötigen Hyper-V. Auf dem Server muss also auch Hyper-V installiert sein. 

 ---------------------------------------------------------------------------------------------------------------------------------------------------------- daemon.json { "debug": true, "experimental": true }

WSL2
https://code.visualstudio.com/blogs/2020/03/02/docker-in-wsl2 

 https://docs.microsoft.com/de-de/windows/wsl/install-manual 

 Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux 

 #curl.exe -L -o ubuntu-1804.appx https://aka.ms/wsl-ubuntu-1804 curl -o ubuntu-2004.appx https://aka.ms/wslubuntu2004 #Invoke-WebRequest https://aka.ms/wslubuntu2004 

 Rename-Item ubuntu-2004.appx ubuntu-2004.zip Expand-Archive ubuntu-2004.zip ubuntu2004 

 cd ubuntu2004 .\ubuntu2004.exe 

 sudo apt update && sudo apt upgrade sudo apt install ansible 

 Add your distro path to the Windows environment PATH using Powershell: 

 $userenv = [System.Environment]::GetEnvironmentVariable("Path", "User") [System.Environment]::SetEnvironmentVariable("PATH", $userenv + "C:\Users\Administrator\ubuntu2004", "User") This will enable you to launch your distro from any path by typing the .exe launcher. For example using ubuntu2004.exe. 

 Note that this will require closing and relaunching PowerShell. 

   

 https://blog.nillsf.com/index.php/2020/06/29/how-to-automatically-start-the-docker-daemon-on-wsl2/ 

 https://medium.com/faun/docker-running-seamlessly-in-windows-subsystem-linux-6ef8412377aa

Private Registry - Push
https://docs.docker.com/engine/reference/commandline/push/ 

 Docker Push Beschreibung Push endert ein Image oder Repository in eine Registrierung 

 Nutzung docker push [OPTIONS] NAME[:TAG] Erweiterte Beschreibung Verwenden Sie diese Datei, um Ihre Images für die Docker Hub-Registrierung oder für eine selbst gehostete Datei freizugeben.docker image push 

 Weitere Informationen zu gültigen Bild- und Tagnamen finden Sie in der Docker-Image-Tag-Referenz. 

 Das Töten des Prozesses, z. B. durch Drücken während des Laufens in einem Terminal, beendet den Push-Vorgang.docker image pushCTRL-c 

 Fortschrittsbalken werden während des Docker-Pushs angezeigt, die die unkomprimierte Größe anzeigen. Die tatsächliche Datenmenge, die übertragen wird, wird vor dem Senden komprimiert, sodass die hochgeladene Größe nicht von der Fortschrittsleiste widergespiegelt wird. 

 Registrierungsanmeldeinformationen werden von docker loginverwaltet. 

 Gleichzeitige Uploads Standardmäßig schiebt der Docker-Daemon fünf Ebenen eines Bildes gleichzeitig. Wenn Sie eine Verbindung mit geringer Bandbreite haben, kann dies zu Problemen mit Timeouten führen, und Sie können dies über die Daemon-Option verringern. Weitere Informationen finden Sie in der Daemon-Dokumentation.--max-concurrent-uploads 

 Verwenden Sie z. B. diesen Befehl, lesen Sie den Abschnitt "Beispiele" weiter unten. 

 Optionen Name, Kurzschrift Standard Beschreibung --all-tags , -a Drücken Sie alle markierten Bilder in das Repository --disable-content-trust true Überspringen der Bildsignatur --quiet , -q Unterdrücken ausführlicher Ausgabe Beispiele Push en ein neues Image an eine Registrierung Speichern Sie zuerst das neue Image, indem Sie die Container-ID (mit Docker-Container ls)suchen und dann an einen neuen Imagenamen übertragen. Beachten Sie, dass nur beim Benennen von Bildern zulässig sind:a-z0-9-_. 

 $ docker container commit c16378f943fe rhel-httpd:latest Übertragen Sie das Bild nun mithilfe der Image-ID in die Registrierung. In diesem Beispiel befindet sich die Registrierung auf dem Host nament und lauscht auf Port . Markieren Sie dazu das Bild mit dem Hostnamen oder der IP-Adresse und dem Port der Registrierung:registry-host5000 

 $ docker image tag rhel-httpd:latest registry-host:5000/myadmin/rhel-httpd:latest 

 $ docker image push registry-host:5000/myadmin/rhel-httpd:latest Überprüfen Sie, ob dies funktioniert hat, indem Sie: 

 $ docker image ls Sie sollten beides sehen und aufgelistet.rhel-httpdregistry-host:5000/myadmin/rhel-httpd 

 Drücken Sie alle Tags eines Bildes Verwenden Sie die Option (oder ), um alle Tags eines lokalen Bildes zu drücken.-a--all-tags 

 Im folgenden Beispiel werden mehrere Tags für ein Image erstellt und alle diese Tags an Docker Hub übertragen. 

 $ docker image tag myimage registry-host:5000/myname/myimage:latest $ docker image tag myimage registry-host:5000/myname/myimage:v1.0.1 $ docker image tag myimage registry-host:5000/myname/myimage:v1.0 $ docker image tag myimage registry-host:5000/myname/myimage:v1 Das Bild ist jetzt unter mehreren Namen getaggt: 

 $ docker image ls 

 REPOSITORY TAG IMAGE ID CREATED SIZE myimage latest 6d5fcfe5ff17 2 hours ago 1.22MB registry-host:5000/myname/myimage latest 6d5fcfe5ff17 2 hours ago 1.22MB registry-host:5000/myname/myimage v1 6d5fcfe5ff17 2 hours ago 1.22MB registry-host:5000/myname/myimage v1.0 6d5fcfe5ff17 2 hours ago 1.22MB registry-host:5000/myname/myimage v1.0.1 6d5fcfe5ff17 2 hours ago 1.22MB Beim Drücken mit der Option werden alle Tags des Bildes gedrückt:--all-tagsregistry-host:5000/myname/myimage 

 $ docker image push --all-tags registry-host:5000/myname/myimage 

 The push refers to repository [registry-host:5000/myname/myimage] 195be5f8be1d: Pushed latest: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527 195be5f8be1d: Layer already exists v1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527 195be5f8be1d: Layer already exists v1.0: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527 195be5f8be1d: Layer already exists v1.0.1: digest: sha256:edafc0a0fb057813850d1ba44014914ca02d671ae247107ca70c94db686e7de6 size: 4527 Übergeordneter Befehl Befehl Beschreibung Docker Der Basisbefehl für die Docker CLI.

Private Registry - Search
  

 http://registry:5000/v2/_catalog

Private Registry - Build
https://github.com/StefanScherer/dockerfiles-windows/blob/main/registry/Dockerfile 

 dockerfile 

 FROM golang as build

SHELL ["powershell", "-Command", "$ErrorActionPreference = 'Stop'; $ProgressPreference = 'SilentlyContinue';"]

ENV DOCKER_BUILDTAGS include_oss include_gcs

ENV DISTRIBUTION_VERSION v2.6.2

RUN mkdir src\github.com\docker ; \

 cd src\github.com\docker ; \

 git clone -q https://github.com/docker/distribution ; \

 cd distribution ; \

 git checkout -q $env:DISTRIBUTION_VERSION ; \

 go build -o registry.exe cmd/registry/main.go

FROM mcr.microsoft.com/windows/nanoserver:sac2016

COPY --from=build /gopath/src/github.com/docker/distribution/registry.exe /registry.exe

COPY config.yml /config/config.yml

EXPOSE 5000

ENTRYPOINT ["\\registry.exe"]

CMD ["serve", "/config/config.yml"]

docker-compose recreate
docker-compose up --force-recreate --build -d 

 

 

 docker-compose up --force-recreate --build -d 

 

 

 

 

 

 docker image prune -f

docker-compose install
  

 Versionen: https://github.com/docker/compose/releases 

   

 Ubuntu 

 wget https://github.com/docker/compose/releases/download/v2.2.2/docker-compose-linux-x86_64 . 

 mv ocker-compose-linux-x86_64 docker-compose 

 chmod +x docker-compose 

 mv docker-compose /usr/bin/docker-compose 

  