Bei mir sammeln sich ein paar Fragen zum Themengebiet der Docker, die ich gerne hier stellen möchte und anschließend soweit sinnvoll in die Knowledge Base einarbeiten möchte. Fragen die Google direkt beantwortet, versuche ich zu vermeiden.
Gerne kann sich jeder mit weiteren Fragen anhängen.
DANKE schon vorab an alle die mit Docker fitter sind als ich und hier (für alle Einsteiger) Hilfestellung geben!!
Und lasst euch durch den Umfang hier nicht gleich abschrecken, ich habe öfters mein Verständnis dazu vermerkt, das ich gerne absichern möchte!
Antworten füge ich der Übersichtlichkeit wegen gleich hier im Ausgangsposting per Edit in blau ein.
1) Deploy und Datenverlust in Containern:
Wann wird bei einem Deploy Container der Container gelöscht und neu gebaut, so dass auch Einstellungen im Container, nachinstalliere Pakete etc. verloren gehen?
Chris M.: Wenn ein Container neu gebaut wird (Portainer: Images -> Build a new image) oder ein fertiger neu gepullt wird, wird der Inhalt sicher durch das neue ersetzt.
Ein ändern von PortMapping, ENV, Network, Volumes etc. und erneutes Deploy löscht offensichtlich nichts - richtig?
(Solange Always pull image deaktiviert ist, vermute ich?)
2) Docker Volumes:
Soweit ich das verstehe, wird ein Pfad im Docker auf ein Volume "gemounted", dass außerhalb dieses Containers liegt. Damit können mehrere Container in das gleiche Volume zugreifen, Daten austauschen etc. Man sieht wenn man das Volume anklickt die Container die darauf verlinkt sind.
- Bleiben die Volumes (inkl. Daten!!) beim Löschen eines oder aller Containers erhalten? ja (Chris M.), seperat unter Volumes zu löschen.
- Wo sieht man die Größe eines Volumes? Chris M.: Im Menü Portainer auf der TWS Oberfläche (nicht portainer Webinterface!)
- Kann man einen Pfad im Container "nachträglich" als Volume definieren? Chris M.: Ja, um den Inhalt muss man sich aber selbst kümmern => per winSCP o.ä. vorher sichern, den der alte Pfad geht beim neuen deploy verloren!!!
3) Zusammenspiel EXPOSE 22 im Docker und Port Mapping.
Braucht es beides? Die meisten Docker files kommen ohne expose aus, im ssh Docker von jockel gibt es ein expose.
Bezieht sich die Option "Publish all exposed ports" nur auf jene Ports, die mit EXPOSE im Dockerfile stehen?
Chris M.: Ein Expose ist nicht zwingend, Dokumentiert halt schön welche Ports der Container bereit stellen möchte.
4) Welche Linux Basis für neue Container
Ist es für den TWS besser, Container auf Basis Debian zu bauen, oder egal? Speicherbedarf höher? Performance?
Chris M.:
Pauschal gilt: kleiner ist besser.
Debian hat den Vorteil, dass vermutlich auch andere Contianer den schon nutzen. Somit ist die Summe von mehreren Containern klein, da es wiederverwendet wird. Einzeln ist der dann dennoch groß. Wer wirklich sparen will, nimmt Alpine.
5) Welches Kürzel im docker Kommandozeilenbefehl entspricht welchem Setting in portainer?
Gibt es dazu eine Beschreibung?
Beispiel:
docker run -d --name="Home-Automation-Bridge" --net="host" -e SERVERIP="192.168.X.X" -e SERVERPORT="XXXX" -v /path/to/config/:/config:rw -v /etc/localtime:/etc/localtime:ro aptalca/home-automation-bridge
--net ist vermutlich network, -e ein Eintrag als env-Variable im ENV-Tab.,
-v sind volumes (Danke tger977)
6) Risiken und Nebenwirkungen für den TWS :
Gibt es ein hartes Limit für RAM außer das was man unter runtime&ressources in portainer einstellen kann? Hintergrund: kann ein Container den TWS in die Knie zwingen oder ist ein Minimum Speicher + CPU fix für den Wolf reserviert?
7) Nützliche Links:
Wer kennt gute Quellen?
- http://www.anecon.com/blog/docker-basic ... ife-hacks/
- https://docs.docker.com/ (Danke Chris M.)
- ...
Robert