Probleme beim erstellen eines Containers

Status
Für weitere Antworten geschlossen.

Avira

Benutzer
Mitglied seit
13. Mrz 2017
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Hallo,

wollte einen Container mit Debian 8.7 erstellen. Dieser Container soll zwei Ports weitergeleitet bekommen und eine festgelegte Hostname erhalten.
Hab nun verschieden wege versucht. z.b. Manuelle umschreibung der Config im Container verzeichnis mittels SSH von Synology.

Leider wurden die einträge dauernd zurückgestetzt. Ebenfalls mit dem Docker run --hostname hat es nicht funktioniert.

Bei der Portweiterleitung bekomme ich schwierigkeiten mit dem Port 69. Dabei erhalte ich dauernd die Fehlermeldung wegen einer Kollidierung.

Habt ihr eine Idee wie ich die Portweiterleitung bekomme und eine Hostname festlege?
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
Portweiterleiten: anderen (freien!) Port nehmen ;)
SSH: Dockerfile bauen in dem die Schritte enthalten sind die den sshd installieren, ggf. User anlegen für den Zugriff
Hostname: auch wenn der Hostname als run Parameter angegeben wird, verschwindet er beim nächsten Neustart. Auch das könnte man über das Dockerfile abwickeln.Ansonsten gibt es keine saubere permanente Lösung.

Was bedeutet den "manuelle Umschreibung der Config im Container-Verzeichnis"?
 

Avira

Benutzer
Mitglied seit
13. Mrz 2017
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Danke für die Antwort.

Leider kann ich keinen anderen Port verwenden. Da ich den TFTP Port benötig.

Mit der Manuellen umschreibung bin ich per SSH ins Container Verzeichnis gegangen und hab dort die host,hostname,config.v2.json und config.json mit angeschaut und bearbeitet. Leider wurden die Daten zurückgesetzt, egal ob der Docker gestopt war oder nicht.

Dann muss ich wohl leider auf mein Raspberry zurückgreifen.
 

rednag

Benutzer
Mitglied seit
08. Nov 2013
Beiträge
3.954
Punkte für Reaktionen
11
Punkte
104
Docker mit Debian konnte ich erstellen, aber eine Anmeldung via puTTY war nicht möglich. Natürlich wurde der "root"-Login in der /etc/ssh/sshd_conf erlaubt.
Connection refused...
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Den Hostnamen (und auch /etc/hosts im Container zu ändern ist sinnlos, weil das ein Overlay File ist. Der Ansatz mit docker run --hostname funktioniert eigentlich. Bei der Synology ist es sinnvoll, nach einem Start mit Run von der Kommandozeile die Parameter in der Gui zu exportieren. Bei mir ist der Hostname so erhalten geblieben

ssh in einen Docker-Conteiner macht man eigentlich nicht, dafür verwendet man docker exec -ti <container> bash oder zur Not auch das Terminal mit "Erstellen" in der Synology Gui.
 

rednag

Benutzer
Mitglied seit
08. Nov 2013
Beiträge
3.954
Punkte für Reaktionen
11
Punkte
104
ssh in einen Docker-Conteiner macht man eigentlich nicht, dafür verwendet man docker exec -ti <container> bash oder zur Not auch das Terminal mit "Erstellen" in der Synology Gui.

Warum kein SSH im Container. Das hat aber schon mal funktioniert gehabt. Der Befehl sagt mir garnüscht. :)
Bin noch am Docker lernen...
 

Avira

Benutzer
Mitglied seit
13. Mrz 2017
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Docker mit Debian konnte ich erstellen, aber eine Anmeldung via puTTY war nicht möglich. Natürlich wurde der "root"-Login in der /etc/ssh/sshd_conf erlaubt.
Connection refused...

Hab über das Terminal erstmal SSH Installiert und danach eine Port Weiterleitung z.b. 4000 auf 22 erstellt. Somit konnte ich über Putty auf den Container zugreifen



Den Hostnamen (und auch /etc/hosts im Container zu ändern ist sinnlos, weil das ein Overlay File ist. Der Ansatz mit docker run --hostname funktioniert eigentlich. Bei der Synology ist es sinnvoll, nach einem Start mit Run von der Kommandozeile die Parameter in der Gui zu exportieren. Bei mir ist der Hostname so erhalten geblieben

ssh in einen Docker-Conteiner macht man eigentlich nicht, dafür verwendet man docker exec -ti <container> bash oder zur Not auch das Terminal mit "Erstellen" in der Synology Gui.

Das ein Overlay mir ständig dazwischen rumfummelt habe ich bemerkt. Den Befehl Docker run --hostname gibt es laut docker run --help nicht. Auch bei Ausführen erhalte ich nur eine Fehlermeldung. Wo setzt ich die Parameter beim Docker Gui fest?

Warum kein SSH im Container. Das hat aber schon mal funktioniert gehabt. Der Befehl sagt mir garnüscht. :)
Bin noch am Docker lernen...

Falls man auf der Synology den SSH aktiviert hat, kann mittels dem Befehl docker attach direkt in den Container einsteigen.
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Leider kann ich keinen anderen Port verwenden. Da ich den TFTP Port benötig.
Dann sollte man den TFTP Dateidienst der Syno auch abstellen. Es kann nur einen geben

Warum kein SSH im Container. Das hat aber schon mal funktioniert gehabt.

Sicher kann man es konfigurieren. Es ist aber normalerweise nicht sinnvoll. Siehe auch http://stackoverflow.com/questions/30172605/how-to-get-into-a-docker-container

In Debian muss man neben der Änderung in /etc/ssh/sshd_config erst ein Password für root setzen, sonst kann man sich nicht anmelden. Das muss man beim Erstellen des Containers machen, weil Änderungen in /etc/passwd usw. normalerweise beim Container-Neustart verloren gehen
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.165
Punkte für Reaktionen
63
Punkte
68
Den Befehl Docker run --hostname gibt es laut docker run --help nicht
Hast Du ein anderes Docker?
docker run --help

Usage: docker run [OPTIONS] IMAGE [COMMAND] [ARG...]

Run a command in a new container
...
-h, --hostname Container host name
...
 

Avira

Benutzer
Mitglied seit
13. Mrz 2017
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Kann ich gerade nicht Prüfen. Unter dem Dateidienst ist der tftp Dienst deaktiviert bei der Synology.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
Änderungen innerhalb des Containers gehen bei einem Neustart verloren? Doch nur wenn ein Init-Script aufräumt. Ansonsten werden alle Änderungen persistiert. Sie gehen nur definitiv verloren, wenn man den Container löscht bzw. "Inhalt löschen" ausführt.

Kann man schon machen. Es entspricht nur nicht den Vorstellungen wie Docker zu verwenden ist.

@Avira: was ist denn überhaupt Dein UseCase? Es gibt gerne mal einen großen Unterschied zwischen dem was man will und dem was man braucht um das zu bekommen...
 

Avira

Benutzer
Mitglied seit
13. Mrz 2017
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Der Container soll als OPSI Server zu Testzwecken dienen.
Klar kann man die PXE ect. anderweitig Konfigurieren, da Synology schon alles anbietet. Jedoch Interessiert mich die Benutzeroberfläche von OPSI.

Der Inhalt den ich als Root auf dem Container erstelle bleibt vorhanden. Nur Einstellungen die normal von Docker festgelegt werden. Zum Beispiel IP, Hostname, ect werden nach Neustarts vom Container zurückgesetzt. Mit dem Hostname könnt ich leben, im zweifel immer eine Autorun datei erstellen die mir das ändert. Allerdings scheitert das Projekt, weil der Port nicht weitergeleitet wird.
 

haydibe

Benutzer
Sehr erfahren
Mitglied seit
12. Apr 2016
Beiträge
1.473
Punkte für Reaktionen
357
Punkte
103
Najo, Du könntest versuchen in der Syno einen remote-TFTP-Server zu verwenden (Konnektivität -> DHCP-Server, Reiter "PXE") und den auf die Syno-IP zeigen zu lassen.
Dann dürfte Port 69/UDP nicht belegt sein, so dass es nicht mehr zu einer Kollision kommt und Du den Port in den Container mappen kannst.

Damit hättest Du auch gleich das Problem gelöst, dass dein Netzwerk wissen muss WO der TFTP-Server zu finden ist.

Schon mal https://hub.docker.com/r/darkounet/opsi-docker/ angeschaut?
 

Avira

Benutzer
Mitglied seit
13. Mrz 2017
Beiträge
16
Punkte für Reaktionen
0
Punkte
0
Najo, Du könntest versuchen in der Syno einen remote-TFTP-Server zu verwenden (Konnektivität -> DHCP-Server, Reiter "PXE") und den auf die Syno-IP zeigen zu lassen.
Dann dürfte Port 69/UDP nicht belegt sein, so dass es nicht mehr zu einer Kollision kommt und Du den Port in den Container mappen kannst.

Damit hättest Du auch gleich das Problem gelöst, dass dein Netzwerk wissen muss WO der TFTP-Server zu finden ist.

Schon mal https://hub.docker.com/r/darkounet/opsi-docker/ angeschaut?

Hab ich gerade getestet, funktioniert leider nicht.
Hab zur sicherheit mal beides Deaktiviert. Synology meckert immer noch dabei rum.

Die Dockerfile hab ich bereits getestet. Leider startet der Container nicht. Hab aber auch noch nicht ganz genau geschaut warum er nicht geht.
 
Status
Für weitere Antworten geschlossen.
 

Kaffeautomat

Wenn du das Forum hilfreich findest oder uns unterstützen möchtest, dann gib uns doch einfach einen Kaffee aus.

Als Dankeschön schalten wir deinen Account werbefrei.

:coffee:

Hier gehts zum Kaffeeautomat