Civil Commons:Roadmap 2020 - Docker Technologie: Unterschied zwischen den Versionen

Aus Civil Commons

Wechseln zu: Navigation, Suche
Zeile 14: Zeile 14:
 
Eine konkrete Fähigkeit, die wir uns auf Basis der Docker-Technologie erschließen wollen, ist die kurzfristige Bereitstellung von Services wie Wikis, File-Sharing-Plattformen usw. für neue Zielgruppen, Initiativen, Organisationen.
 
Eine konkrete Fähigkeit, die wir uns auf Basis der Docker-Technologie erschließen wollen, ist die kurzfristige Bereitstellung von Services wie Wikis, File-Sharing-Plattformen usw. für neue Zielgruppen, Initiativen, Organisationen.
  
Im Folgenden sammeln wir im Rahmen der Erschließung von Docker zunächst unsere Notizen - zu Docker generell und zur Bereitstellung von Services auf Basis von Docker. Diese Notizen sollen zu detaillierten Anleitung zur Installation und zum Betrieb der Docker-Infrastruktur und zur Bereitstellung der Services ausgearbeitet werden. 
+
Im Folgenden sammeln wir im Rahmen der Erschließung von Docker zunächst unsere Notizen - zu Docker generell und zur Bereitstellung von Services auf Basis von Docker. Diese Notizen sollen zu detaillierten Anleitung zur Installation und zum Betrieb der Docker-Infrastruktur und zur Bereitstellung der Services ausgearbeitet werden.
 +
 
 +
==Ubuntu LTS with SSH==
 +
... im Folgenden eine Anleitung zur Erstellung eines Images, das ein Ubuntu Linux LTS mit SSH-Zugang bereitstellt - basierend auf: https://github.com/art567/docker-ubuntu-sshd
 +
 
 +
Das zur Erstellung des Images genutzte Dockerfile:
 +
 
 +
# ...<br><br>
 +
Das in dem Dockerfile referenzierte Script "start":
 +
 
 +
 
 +
 
 +
# !/bin/bash
 +
# -----------------------------------------------------------------------------
 +
# ubuntussh /start script
 +
#
 +
# Authors: Art567
 +
# Updated: Sep 20th, 2015
 +
# -----------------------------------------------------------------------------
 +
 
 +
# Run OpenSSH server in daemon mode
 +
 
 +
/usr/sbin/sshd -D
 +
 
 +
 
 +
Anweisung zur Erstellung des Images:
 +
 
 +
docker build -t ubuntussh
 +
 
 +
Erstellen und Ausfuehren des Containers auf Basis des Images:
 +
 
 +
docker run -it -p 2222:22 --name=ubuntussh1 --rm ubuntussh /bin/bash
 +
 
 +
Dieser Container ist zugänglich über den Port 2222 des Docker-Hosts - z.B. des zur Entwicklung genutzten Windows-Rechners.<br />(Das ist nochmal zu testen - SF - habe letztlich mit der Variante "--network host" gearbeitet - s.u.)
 +
 
 +
Erstellen eines Containers und Aufruf mit Shell - z.B. bei Problemen mit dem "start"-Script
 +
 
 +
docker run -it -p 2222:22 --name=ubuntussh1 --rm ubuntussh /bin/bash
 +
 
 +
SSH-Zugang zum Container mit den angelegten Usern nun z.B. mit:
 +
 
 +
- ssh root@ -p 2222<br />- ssh master@ -p 2222
 +
 
 +
Erstellen und Ausfuehren eines Containers mit einer IP-Adresse im externen Netzwerk des Docker-Hosts:
 +
 
 +
docker run --network host --hostname ubuntussh1 --name=ubuntussh1 --rm ubuntussh
 +
 
 +
... und Shell-Zugang zu diesem Container:
 +
 
 +
docker exec -it ubuntussh1 /bin/bash
 +
 
 +
Die vergebene IP-Adresse kann nun angezeigt werden durch:
 +
 
 +
hostname -I
 +
 
 +
Nun kann in gewohnter Weise auch ueber eine eigene Adresse und Port 22 auf den Container zugegriffen werden.
 +
 
 +
Hinweis: Diese Uebung ging von der Fragestellung aus: Kann ich auf Basis von Docker ein "eigenständiges" Image erstellen? Es entspricht letztlich nicht dem Docker-Konzept, dass jeder (Mikro)Service seine eigene IP-Adresse bekommt und Shell-Zugriff bietet. Vielmehr sollten Services, die nicht extern zugreifbar sein sollen, im Netzwerk des Docker-Hosts isoliert werden.
  
 
==FIWARE Keyrock==
 
==FIWARE Keyrock==
 
((Jürgen Wachtel ist dran - 28.12.2018))
 
((Jürgen Wachtel ist dran - 28.12.2018))

Version vom 28. Dezember 2018, 18:10 Uhr

docker lead.jpg

Im November/Dezember 2018 gab es mehrere intensive Gesprächsrunden zu der Frage, welches die nächsten Schritte auf dem Weg zur nächsten Generation unserer Infrastruktur im Rahmen der Roadmap 2020 sein sollen (Beteiligte waren u.a. Jaro Eiermann, Jasper Schmidt, Christian Mürner - "Begeisterhaus", Stephan Frenzel, Jürgen Wachtel - Kybeidos / Lernkonzept). Konkret ging es u.a. um die Frage, ob wir ein Labor mit eigener Hardware aufbauen - mit der Folge, dass wir uns dann zunächst mit Fragen der Virtualisierung hätten beschäftigen müssen - z.B. auf Basis von OpenStack (https://www.openstack.org/). Die Alternative dazu war es, von Anfang an eine Cloud-Plattform zu nutzen und direkt mit der Bereitstellung der geplanten Dienste (Wiki, File Sharing, ...) zu beginnen.

Zwei Argumente sprachen dafür, die zweite Option zu wählen:

  1. Ein Labor auf Basis eigener Hardware warf die Frage auf, in welchen Räumen (mit welcher Netzanbindung, welchen Sicherheitsmaßnahmen, ...) die Server stehen sollten; wir hätten absehbar mehrere Wochen mit administrativen Prozessen verbracht.
  2. Ein noch stärkeres Argument aber war: Beim Fachaustausch Geoinformation am 29.11.2018 hat die Digitalagentur Heidelberg gemeinsam mit NEC die Pläne vorgestellt, am Digital Hub kurpfalz@bw eine FIWARE-Infrastruktur verfügbar zu machen. Im Rahmen von FIWARE bieten die sg. FIWARE Labs die Möglichkeit, eine Server-Images bzw. Container zu hosten.

Ein eigenes Labor aufzubauen hätte bedeutet, an Themen zu arbeiten, die im Rahmen von FIWARE schon - u.a. durch NEC - überzeugend gelöst sind.

Wir haben uns daher dafür entschieden, direkt am Aufbau der geplanten Dienste zu arbeiten - und das bedeutete, damit zu beginnen, uns die Docker-Technologie zu erschließen. Docker ist aus unserer Sicht die Technologie der Wahl, wenn es darum geht, eine Plattformen bereitzustellen, die auf dem Konzept von (Micro)Services aufbauen - mit den einschlägigen Vorteilen hoher Granularität und Skalierbarkeit.

Eine konkrete Fähigkeit, die wir uns auf Basis der Docker-Technologie erschließen wollen, ist die kurzfristige Bereitstellung von Services wie Wikis, File-Sharing-Plattformen usw. für neue Zielgruppen, Initiativen, Organisationen.

Im Folgenden sammeln wir im Rahmen der Erschließung von Docker zunächst unsere Notizen - zu Docker generell und zur Bereitstellung von Services auf Basis von Docker. Diese Notizen sollen zu detaillierten Anleitung zur Installation und zum Betrieb der Docker-Infrastruktur und zur Bereitstellung der Services ausgearbeitet werden.

Ubuntu LTS with SSH

... im Folgenden eine Anleitung zur Erstellung eines Images, das ein Ubuntu Linux LTS mit SSH-Zugang bereitstellt - basierend auf: https://github.com/art567/docker-ubuntu-sshd

Das zur Erstellung des Images genutzte Dockerfile:

# ...

Das in dem Dockerfile referenzierte Script "start":


  1.  !/bin/bash
  2. -----------------------------------------------------------------------------
  3. ubuntussh /start script
  4. Authors: Art567
  5. Updated: Sep 20th, 2015
  6. -----------------------------------------------------------------------------
  1. Run OpenSSH server in daemon mode

/usr/sbin/sshd -D


Anweisung zur Erstellung des Images:

docker build -t ubuntussh

Erstellen und Ausfuehren des Containers auf Basis des Images:

docker run -it -p 2222:22 --name=ubuntussh1 --rm ubuntussh /bin/bash

Dieser Container ist zugänglich über den Port 2222 des Docker-Hosts - z.B. des zur Entwicklung genutzten Windows-Rechners.
(Das ist nochmal zu testen - SF - habe letztlich mit der Variante "--network host" gearbeitet - s.u.)

Erstellen eines Containers und Aufruf mit Shell - z.B. bei Problemen mit dem "start"-Script

docker run -it -p 2222:22 --name=ubuntussh1 --rm ubuntussh /bin/bash

SSH-Zugang zum Container mit den angelegten Usern nun z.B. mit:

- ssh root@ -p 2222
- ssh master@ -p 2222

Erstellen und Ausfuehren eines Containers mit einer IP-Adresse im externen Netzwerk des Docker-Hosts:

docker run --network host --hostname ubuntussh1 --name=ubuntussh1 --rm ubuntussh

... und Shell-Zugang zu diesem Container:

docker exec -it ubuntussh1 /bin/bash

Die vergebene IP-Adresse kann nun angezeigt werden durch:

hostname -I

Nun kann in gewohnter Weise auch ueber eine eigene Adresse und Port 22 auf den Container zugegriffen werden.

Hinweis: Diese Uebung ging von der Fragestellung aus: Kann ich auf Basis von Docker ein "eigenständiges" Image erstellen? Es entspricht letztlich nicht dem Docker-Konzept, dass jeder (Mikro)Service seine eigene IP-Adresse bekommt und Shell-Zugriff bietet. Vielmehr sollten Services, die nicht extern zugreifbar sein sollen, im Netzwerk des Docker-Hosts isoliert werden.

FIWARE Keyrock

((Jürgen Wachtel ist dran - 28.12.2018))