Änderungen

Aus Civil Commons

Wechseln zu: Navigation, Suche

Civil Commons:Roadmap 2020 - Docker Technologie

20 Byte hinzugefügt, 18:39, 28. Dez. 2018
keine Bearbeitungszusammenfassung
# -----------------------------------------------------------------------------<br># This is base image of Ubuntu LTS with SSHD service.<br>#<br># ... basierend auf https://github.com/art567/docker-ubuntu-sshd <br># von Art567, Sep 20th, 2015 (https://github.com/art567/docker-ubuntu-sshd)<br>#<br># Autor: Stephan Frenzel<br># Datum: 28.12.2018<br>#<br># Erfordert: Docker (http://www.docker.io/)<br>#<br># Vor Erstellung des Images sollten unbedingt die Passwoerter der Benutzer <br># "root" und "master" geaendert werden - s.u. "passwdfile".<br># -----------------------------------------------------------------------------<br><br># Base system is the latest LTS version of Ubuntu.<br>from ubuntu<br><br># Make sure we don't get notifications we can't answer during building.
env DEBIAN_FRONTEND = noninteractive<br><br># Bereitstellung des Start-Scripts<br># Bei Bearbeitung des Skripts unter Windows aufpassen, dass sich nicht CRLF einschleichen <br># (Unix erwartet nur LF); das Skript waere dann unter Unix nicht ausfuehrbar und der Container <br># wuerde nicht starten.<br>add ./start /start<br><br># Download and install everything from the repos.<br>run apt-get -q -y update && \<br> apt-get -q -y install apt-utils && \<br> apt-get -q -y install openssh-server && \<br> mkdir /var/run/sshd<br><br># Falls im Rahmen von Tests Dateien bearbeitet werden sollen - der Editor "nano"<br>run apt-get -q -y install nano<br><br># Passwort fuer "root" festlegen - vor Erstellung des Images aendern!<br>run echo 'root:secret' >> /root/passwdfile<br><br># User "master" anlegen - mit "sudo"-Recht<br>run useradd -m -G sudo master<br><br># Passwort fuer "master" festlegen - vor Erstellung des Images aendern!<br>run echo 'master:secret' >> /root/passwdfile<br><br># Passwoerter fuer "root" und "master" setzen<br>run chpasswd -c SHA512 < /root/passwdfile && \<br> rm /root/passwdfile<br><br># Port 22 is used for ssh<br>expose 22<br><br># Assign /data as static volume.<br>volume ["/data"]<br><br># Executable-Flag des Start-Scripts setzen<br>run chmod +x /start<br><br># Starting sshd - kann im Fall von Problemen im "docker run" ueberschrieben werden<br>cmd ["/start"]<br><br># Stand 28.12.2018 ist dieses Dockerfile ueberarbeitet aber noch nicht wieder getestet -<br># es koennen aber nur Kleinigkeiten sein ;-)
Das in dem Dockerfile referenzierte Script "start":
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.)
SSH-Zugang zum Container mit den angelegten Usern nun z.B. mit:
- ssh root@ <ip-address> -p 2222<br />- ssh master@ <ip-address> -p 2222 
Erstellen und Ausfuehren eines Containers mit einer IP-Adresse im externen Netzwerk des Docker-Hosts:
hostname -I
Nun kann in gewohnter Weise auch ueber über eine eigene Adresse und Port 22 auf den Container zugegriffen werden.
Hinweis: Der Erstellung dieses Images lag die Fragestellung zugrunde: Kann ich auf Basis von Docker ein "eigenständiges" Image erstellen? Es entspricht letztlich nicht dem Docker-Konzept, dass jeder (Mikro)Service seine eigene externe IP-Adresse bekommt und Shell-Zugriff bietet. Vielmehr sollten Services, die nicht extern zugreifbar sein sollen, im Netzwerk des Docker-Hosts isoliert werden.
BdB_Heidelberg, Bibliothek_KH, DAI_Makerspace_Projekt, Graphiken KF, Landfried, N_E_U_Project, Projekt_BdB_Heidelberg, Projekt_Civil_Commons, Projekt_Landfried, Projekt_OG, Team_UIEG_Heidelberg, Team_UIEV_Heidelberg, UIEG_Heidelberg, UIEV_Heidelberg, Bürokrat, Administrator, Widget-Bearbeiter
955
Bearbeitungen