Diskussion:Docker: Unterschied zwischen den Versionen

Aus Foxwiki
Wechseln zu:Navigation, Suche
Keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
 
(2 dazwischenliegende Versionen desselben Benutzers werden nicht angezeigt)
Zeile 1: Zeile 1:
<div class="card-group">
<div class="row row-cols-1 row-cols-md-3 g-4">
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''Informationssicherheit'''</div>
<div class="card-body bg-white">
<p class="card-text">[[Information Security Management System]] nach [[ISO/27000]]</p>
</br>
{{#bootstrap_button: Informationssicherheit | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''IT-Grundschutz'''</div>
<div class="card-body bg-white">
<p class="card-text">[[Information Security Management System]] nach [[IT-Grundschutz]]</p>
</br>
{{#bootstrap_button: IT-Grundschutz | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''Business Continuity'''</div>
<div class="card-body bg-white">
<p class="card-text">Essentielle Aufgaben in Krisen- und Notfällen bewältigen</p>
</br>
{{#bootstrap_button: Business Continuity Management System | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''BSI-Standard 200-4'''</div>
<div class="card-body bg-white">
<p class="card-text">Fortbestand sicherstellen</p>
<p class="card-text">Sicherstellung des Fortbestands von Einrichtungen</p>
<p class="card-text">Ziele, Analysen, Methoden</p>
{{#bootstrap_button: BSI-Standard 200-4 | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''Linux'''</div>
<div class="card-body bg-white">
<p class="card-text">Anwendungen, Befehle, Administration, Sicherheit</p>
</br>
</br>
{{#bootstrap_button: Linux | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''Netzwerke'''</div>
<div class="card-body bg-white">
<p class="card-text">Architektur, Protokolle, Geräte</p>
</br>
</br>
{{#bootstrap_button: Computernetzwerk | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''Netzwerkdienste'''</div>
<div class="card-body bg-white">
<p class="card-text">Bereitstellung von Daten und Funktionen in [[Netzwerk]]en </p>
</br>
{{#bootstrap_button: Netzwerk/Dienst | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''Docker'''</div>
<div class="card-body bg-white">
<p class="card-text">[[Containervirtualisierung]]</p>
{{#bootstrap_button: Docker | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''IT-Sicherheit'''</div>
<div class="card-body bg-white">
<p class="card-text">IT-Sicherheit</p>
</br>
</br>
{{#bootstrap_button: IT-Sicherheit | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''Management'''</div>
<div class="card-body bg-white">
<p class="card-text">Leitung, Organisation und Steuerung von Organisationen oder Prozessen, um definierte Ziele zu erreichen</p>
{{#bootstrap_button: Management | text=mehr ... | color=info }}
</div>
</div>
</div>
<div class="col">
<div class="card h-100 bg-info">
<div class="card-header text-white">'''Seminare'''</div>
<div class="card-body bg-white">
<p class="card-text">Übersichten und Materialien</p>
</br>
</br>
{{#bootstrap_button: Seminar | text=mehr ... | color=info }}
</div>
</div>
</div>
; <nowiki>Motivation CI/CD: WFM (''Works For Me'')</nowiki>
; <nowiki>Motivation CI/CD: WFM (''Works For Me'')</nowiki>
Auf dem CI-Server muss man eine Arbeitsumgebung konfigurieren und bereitstellen, für Java-basierte Projekte muss beispielsweise ein JDK existieren und man benötigt Tools wie Maven oder Gradle, um die Buildskripte auszuführen
Auf dem CI-Server muss man eine Arbeitsumgebung konfigurieren und bereitstellen, für Java-basierte Projekte muss beispielsweise ein JDK existieren und man benötigt Tools wie Maven oder Gradle, um die Buildskripte auszuführen
Zeile 86: Zeile 214:
== Docker-Hub ==
== Docker-Hub ==
Docker-Hub ist ein Cloud-Repository für Container, in dem Docker-Images gespeichert und verteilt werden. Weitere Informationen finden Sie unter [[Docker/Hub|Docker-Hub]]
Docker-Hub ist ein Cloud-Repository für Container, in dem Docker-Images gespeichert und verteilt werden. Weitere Informationen finden Sie unter [[Docker/Hub|Docker-Hub]]


; Tipp
; Tipp
Zeile 94: Zeile 219:
:* Neben der Docker-CE gibt es auch die ''Docker Enterprise Edition'' (Docker EE), die einige Premium-Features hat
:* Neben der Docker-CE gibt es auch die ''Docker Enterprise Edition'' (Docker EE), die einige Premium-Features hat
:* Diese ist allerdings nicht kostenfrei und eignet sich eher für Unternehmen
:* Diese ist allerdings nicht kostenfrei und eignet sich eher für Unternehmen
[[Kategorie:Docker]]

Aktuelle Version vom 8. Oktober 2026, 12:25 Uhr

Business Continuity

Essentielle Aufgaben in Krisen- und Notfällen bewältigen


mehr ...

BSI-Standard 200-4

Fortbestand sicherstellen

Sicherstellung des Fortbestands von Einrichtungen

Ziele, Analysen, Methoden

mehr ...

Linux

Anwendungen, Befehle, Administration, Sicherheit



mehr ...

Netzwerke

Architektur, Protokolle, Geräte



mehr ...

Netzwerkdienste

Bereitstellung von Daten und Funktionen in Netzwerken


mehr ...

IT-Sicherheit

IT-Sicherheit



mehr ...

Management

Leitung, Organisation und Steuerung von Organisationen oder Prozessen, um definierte Ziele zu erreichen

mehr ...

Seminare

Übersichten und Materialien



mehr ...

Motivation CI/CD: WFM (''Works For Me'')

Auf dem CI-Server muss man eine Arbeitsumgebung konfigurieren und bereitstellen, für Java-basierte Projekte muss beispielsweise ein JDK existieren und man benötigt Tools wie Maven oder Gradle, um die Buildskripte auszuführen

  • Je nach Projekt braucht man dann noch weitere Tools und Bibliotheken
  • Diese Konfigurationen sind unabhängig vom CI-Server und werden üblicherweise nicht direkt installiert, sondern über eine Virtualisierung bereitgestellt

Selbst wenn man keine CI-Pipelines einsetzt, hat man in Projekten mit mehreren beteiligten Personen häufig das Problem "WFM" ("works for me")

  • Jeder Entwickler hat sich auf ihrem Rechner eine Entwicklungsumgebung aufgesetzt und nutzt in der Regel seine bevorzugte IDE oder sogar unterschiedliche JDK-Versionen
  • Dadurch kann es schnell passieren, dass Probleme oder Fehler auftreten, die sich nicht von allen Beteiligten immer nachvollziehen lassen
  • Hier wäre eine einheitliche Entwicklungsumgebung sinnvoll, die in einer "schlanken" Virtualisierung bereitgestellt wird

Als Entwickler kann man zeitgleich in verschiedenen Projekten beteiligt sein, die unterschiedliche Anforderungen an die Entwicklungstools mit sich bringen

  • Es könnte beispielsweise passieren, dass man zeitgleich drei bestimmte Python-Versionen benötigt
  • In den meisten Fällen schafft man es (mit ein wenig Aufwand), diese Tools nebeneinander zu installieren
  • Oft ist das in der Praxis aber schwierig und fehleranfällig

In diesen Fällen kann eine Virtualisierung helfen

  • Wikipedia: Docker
  • Wikipedia: Virtuelle Maschinen
  • Docker: Überblick, Container
  • Docker: HowTo
  • DockerHub: Suche nach fertigen Images
  • Docker und Java
  • Dockerfiles: Best Practices
  • Gitlab, Docker
  • VSCode: Entwickeln in Docker-Containern
  • [DockerInAction] und [DockerInPractice]
VSCode

VSCode kann über das Remote-Plugin sich (u.a.) mit Containern verbinden und dann im Container arbeiten (editieren, compilieren, debuggen, testen, ...)

In dieser kurzen Einheit kann ich Ihnen nur einen ersten Einstieg in das Thema geben

  • Wir haben uns beispielsweise nicht Docker Compose oder Kubernetes angeschaut, und auch die Themen Netzwerk (zwischen Containern oder zwischen Containern und anderen Rechnern) und Volumnes habe ich außen vor gelassen
  • Dennoch kommt man in der Praxis bereits mit den hier vermittelten Basiskenntnissen erstaunlich weit
Videos (YouTube)
  • VL Einführung in Docker
  • Demo Container in der Konsole
  • Demo GitLab CI/CD und Docker
  • Demo GitHub Actions und Docker
  • Demo VSCode und Docker
Videos (HSBI-Medienportal)
  • VL Einführung in Docker
Lernziele
  • (K2) Unterschied zwischen Containern und VMs
  • (K2) Einsatzgebiete für Container
  • (K2) Container laufen als abgeschottete Prozesse auf dem Host - kein Sandbox-Effekt
  • (K3) Container von DockerHub ziehen
  • (K3) Container starten
  • (K3) Eigene Container definieren und bauen
  • (K3) Einsatz von Containern in GitLab CI/CD und GitHub Actions
  • (K3) Einsatz von VSCode und Containern

Wrap-Up

  • Schlanke Virtualisierung mit Containern (kein eigenes OS)
  • Kein Sandbox-Effekt
  • Begriffe: Docker-File vs. Image vs.  Container
  • Ziehen von vordefinierten Images
  • Definition eines eigenen Images
  • Arbeiten mit Containern: lokal, CI/CD, VSCode

Quizzes

  • Quiz Docker (ILIAS)

Quellen

  • [DockerInAction] Docker in Action Nickoloff, D., Manning Publications, 2019. ISBN 978-1-6172-9476-1
  • [DockerInPractice] Docker in Practice Miell, I. und Sayers, A. H., Manning Publications, 2019. ISBN 978-1-6172-9480-8
  • [Inden2013] Der Weg zum Java-Profi Inden, M., dpunkt.verlag, 2013. ISBN 978-3-8649-1245-0

Docker/Tutorial - Virtualisierungsplattform Docker nutzen

Beschreibung

Tutorial-Teile
  1. Docker/Tutorial
  2. Docker/Tutorial/Arbeiten mit Docker
  3. Docker/Tutorial/Images und Container
  4. Docker/Tutorial/Links


Tipp
Docker-Container und -Images sind meistens generisch, aber können nach Bedarf auch sehr individuell gestaltet werden

Docker-Hub

Docker-Hub ist ein Cloud-Repository für Container, in dem Docker-Images gespeichert und verteilt werden. Weitere Informationen finden Sie unter Docker-Hub

Tipp
2017 wurde die Docker-Engine in Docker Community Edition (abgekürzt Docker CE) umbenannt, jedoch wird in der offiziellen Dokumentation und in den Docker-Repositorys meistens noch der alte Name verwendet
  • Neben der Docker-CE gibt es auch die Docker Enterprise Edition (Docker EE), die einige Premium-Features hat
  • Diese ist allerdings nicht kostenfrei und eignet sich eher für Unternehmen