SQL Server unter Docker: Keine Verbindung

NAS-Newbee

Benutzer
Mitglied seit
09. Aug 2013
Beiträge
75
Punkte für Reaktionen
18
Punkte
8
Hallo,

habe Dank der guten Anleitung hier im Forum den MS SQL Server unter Docker ans laufen gebracht. zumindest steht der Container auf grün.

1702151080749.png

Leider bekomme ich keine Verbindung zum Server über SQL Management Studio hin.

Ich bekomme immer folgende Meldung, wenn ich versuche, die Verbindung herzustellen:

1702151247435.png


Da ich mir beim Servernamen unsicher bin, habe ich verschiedene Varianten ausprobiert:

192.168.8.11\SQLEXPRESS
192.168.8.11\SQLEXPRESS:1433
192.168.8.11:1433\SQLEXPRESS

Auf meinem Windows Server hat es immer mit der Variante IP-Adresse\SQLEXPRESS funktioniert

Die Einstellungen des Containers sind wie folgt:

1702151434616.png

1702151492446.png

1702151527940.png

Sind die Einstellungen so i.O.?
Wie lautet der Servername, wenn die IP der Synology 192.168.8.11 ist?

Danke für Eure Unterstützung.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Ich könnte schwören, dass bei Docker lediglich eine Standardinstanz und keine benannte Instanz installiert wird.
Versuch mal nur die IP-Adresse. Portangabe ist übrigens unnötig.
 
  • Like
Reaktionen: NAS-Newbee

NAS-Newbee

Benutzer
Mitglied seit
09. Aug 2013
Beiträge
75
Punkte für Reaktionen
18
Punkte
8
Nur mit der IP-Adresse geht es auch nicht. Schade
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Mal in den Log vom Docker-Container geschaut?
Den Eintrag:
ACCEPT_EULA=Y
hast du auch gesetzt?
 
  • Like
Reaktionen: NAS-Newbee

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
  • Like
Reaktionen: NAS-Newbee

NAS-Newbee

Benutzer
Mitglied seit
09. Aug 2013
Beiträge
75
Punkte für Reaktionen
18
Punkte
8
Mal in den Log vom Docker-Container geschaut?
Den Eintrag:
ACCEPT_EULA=Y
hast du auch gesetzt?
Danke für die Tipps

Tatsächlich hatte ich den Parameter nicht gesetzt. Geht aber immer noch nicht. Aber wir kommen voran, Stück für Stück
 

NAS-Newbee

Benutzer
Mitglied seit
09. Aug 2013
Beiträge
75
Punkte für Reaktionen
18
Punkte
8
Hab ich versucht, geht aber immer noch nicht. weder mit 192.168.811,1433 noch mit 192.168.8.11\SQLEXPRESS,1433

Ich hab jetzt aber ein Problem. ich habe jetzt mehrere SQL Container am Laufen. Die beiden markierten will ich löschen, klappt aber nicht. Ich bekomme die Container nicht gestoppt.

1702157886066.png

Ich will jetzt erstmal ausschließen, dass die sich irgendwie gegenseitig bekriegen, da ich ja auch dort denselben Port eingestellt habe. Nur bekomme ich die nicht gestoppt.
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Ich habe gerade erst gesehen, dass du ein anderes Image verwendest. Verwende doch das offizielle von Microsoft.
https://hub.docker.com/_/microsoft-mssql-server
Aber vorher solltest du die anderen erstmal rauskanten. Versuch mal deine Möhre neuzustarten und dann über die GUI zu löschen. Wenn alles nicht hilft, mittels Shell versuchen: https://docs.docker.com/engine/reference/commandline/rm/

Wenn du mit Docker arbeitest, kannst du dir auch als Verwaltungsoberfläche Portainer einmal anschauen.

P.S.: Es funktioniert dann so wie ich gesagt habe.
Bild_2023-12-09_231834657.png
Bild_2023-12-09_232249709.png
 
  • Like
Reaktionen: NAS-Newbee

NAS-Newbee

Benutzer
Mitglied seit
09. Aug 2013
Beiträge
75
Punkte für Reaktionen
18
Punkte
8
Vielen Dank, ich habe nach einem Neustart nun alle Container löschen können.

Ich habe das andere Image verwendet, da ich das Image von Microsoft nicht gefunden habe in der Registierung.

Ich versuche mich jetzt mal am Microsoft Image über den Link ...
 
Zuletzt bearbeitet von einem Moderator:

NAS-Newbee

Benutzer
Mitglied seit
09. Aug 2013
Beiträge
75
Punkte für Reaktionen
18
Punkte
8
OK, nächste Herausforderung:
das Microsoft Image muss ich mir über das terminal installieren
Habe noch nie über SSH auf die Synology zugegriffen, daher habe ich das erstmal installiert. Zugriff klappt auch.

Wenn ich mich dann anmelde (Admin-Berechtigungen) und den Befehl "docker pull mcr.microsoft.com/mssql/server" eingebe, bekomme ich folgende Meldung

1702197293801.png
 

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Fehlende Rechte... das Skript muss unter administrativen Rechten ausgeführt werden. Du kannst den Einzeiler auch einfach über den Aufgabenplaner ausführen , dann einfach den Benutzer root auswählen.
In der Shell musst du sudo voranstellen.

docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=yourStrong(!)Password" -e "MSSQL_PID=Evaluation" -p 1433:1433 --name sqlpreview --hostname sqlpreview -d mcr.microsoft.com/mssql/server:2022-preview-ubuntu-22.04
 
Zuletzt bearbeitet:

Ulfhednir

Benutzer
Sehr erfahren
Mitglied seit
26. Aug 2013
Beiträge
3.476
Punkte für Reaktionen
1.087
Punkte
194
Denk dran, dass du dir noch ein Share-/Backup-Verzeichnis mappst, damit du deine Datenbank innerhalb des Containers wiederherstellen kannst.

Zum Beispiel:
/volume1/docker/mssql/backup:/var/backups

Ersatzweise müsstest du das über docker cp per Shell machen.
 

sky63

Benutzer
Mitglied seit
19. Okt 2017
Beiträge
467
Punkte für Reaktionen
73
Punkte
28
Unabhängig davon das jetzt das Thema wechselt mal die Frage in den Raum geworfen ob denn ein "telnet <IP> <port>" funktioniert(e). Erst dann braucht man sich Gedanken über Instanzen etc. machen.

gruss,
sky
 

maxblank

Benutzer
Contributor
Sehr erfahren
Mitglied seit
25. Nov 2022
Beiträge
4.161
Punkte für Reaktionen
2.182
Punkte
289
Als Hintergrundinformation: damit wird geprüft, ob ein Dienst oder Prozess auf diesem Port lauscht und erreichbar ist.

Edit: noch ergänzt
 
Zuletzt bearbeitet:

sky63

Benutzer
Mitglied seit
19. Okt 2017
Beiträge
467
Punkte für Reaktionen
73
Punkte
28
Naja, genauer gesagt prüft man ob man vom Client durch alle FWs bis auf den hoffentlich laufenden Dienst kommt. Will man wissen ob der Port auf dem Server offen ist, lauscht und welches Programm den Port nutzt hilft unter Windows "netstat -a", unter Linux verwende ich gerne "netstat -tulpen"

gruss,
sky
 
  • Like
Reaktionen: maxblank

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
Wenn man nicht möchte, das die Daten nach einem Neustart des Containers verschwinden sollte man ein Volume oder ein Directory auf der DS mounten, z.B. beim bei einem Volume im Run zusätzlich noch angeben
- v sqlserver_data:/var/opt/mssql
Dann wird die DB auch auf der Platte geschrieben ins Volume sqlserver_data (docker volume ls) geschrieben und nicht nur im Memory des Containers
 

NAS-Newbee

Benutzer
Mitglied seit
09. Aug 2013
Beiträge
75
Punkte für Reaktionen
18
Punkte
8
OK, danke. Wieder einen Schritt weiter.

Mit SUDO vorangestellt habe ich das Image herunterladen können.

Ich bin dann in den Container Manager gegangen und hab das Image für den Server gefunden.
Ich hab dann das Image mit den Parametern über den Container Manager ausgeführt (also nicht mit SSH). Das Verzeichnis volume1/docker/var/opt/msssql/data is gemounted auf /var/opt/msssql/data, ACCEPT_EULA = Y, Port 1433, MSSQL_PID=developer

Jetzt habe ich scheinbar noch ein Berechtigungsproblem. Der Container startet kurz und bricht dann ab.
Folgender Fehler:

1702229990250.png
 

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
Wenn Du ein für den Msqlserver ein Verzeichnis auf der DS statt einem Volume mountest, braucht es die Rechte für den User 10001 (sudo chown 10001 <verzeichnis>) oder Du änderst die Verzeichnisrechte (sudo chmod -R 0777 <verzeichnis> =unsicherer)
 
  • Like
Reaktionen: NAS-Newbee

NAS-Newbee

Benutzer
Mitglied seit
09. Aug 2013
Beiträge
75
Punkte für Reaktionen
18
Punkte
8
Vielen Dank. Das hat geklappt. Ganz ehrlich, ich habe viel gelesen zum dem Thema, aber den Hinweis habe ich nirgendwo gefunden. Ich werde, wenn mal alles läuft, eine ausführliche Doku über jeden einzelnen Schritt dazu hier einstellen, um auch mal was in dieser Runde zurückzugeben.


Der SQL Server steht nun auf Grün. Leider bekomme ich immer noch keine Verbindung über das SQL Management Studio zum SQL Server.

Ich habe folgendes eingegeben:

1702321842007.png


Fehlermeldung:

1702321779994.png
 
Zuletzt bearbeitet von einem Moderator:

Tommi2day

Benutzer
Mitglied seit
24. Aug 2011
Beiträge
1.187
Punkte für Reaktionen
71
Punkte
68
Schau doch mal in die Logs des Containers, ob da Fehler drin sind. Ich hatte z.B. am Anfang ein zu schwaches Passwort drin, wodurch der Container in einer Endlosschleife war. Mit 10+ Zeichen Gross, Kleinbuchstaben Zahl und Sonderzeichen ging es dann. Wobei ich nicht das Studio verwende. Evtl kannst Du was anderes probieren.
 
  • Like
Reaktionen: NAS-Newbee


 

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