Unsere Datenschutzrichtlinie wird in Kürze aktualisiert. Bitte sehen Sie sich die Vorschau an.

Datenzugriff mit ADO.NET und .NET Core

Docker installieren und einrichten

Testen Sie unsere 2016 Kurse

10 Tage kostenlos!

Jetzt testen Alle Abonnements anzeigen
Thorsten Kansy setzt für die Beispiele dieses Video-Trainings auf die Virtualisierung per Docker. Sie lernen, wie auch Sie so einen passenden Docker-Container einrichten und die neueste SQL-Server-Version nutzen können.
11:08

Transkript

Weil es so einfach und weil es auch so spannend ist, habe ich mich dazu entschlossen, die Beispiele mit einer SQL vNext Docker-Session, also einem Docker-Image, durchzuführen. Und wie das Ganze eingerichtet wird, das möchte ich in den nächsten 1-2 Minuten kurz vorstellen. So, zunächst einmal müssen Sie Docker für Windows herunterladen und installieren. Das ist relativ leicht. Sie können einfach in der Suchmaschine Ihrer Wahl "Docker for Windows" eingeben und Sie werden sehr schnell auf eine Seite kommen, die Ihnen entsprechend von "docker.com" einen Download für Ihre Plattform bereitstellt. Dann müssen Sie Ihren Speicher für die virtuelle Maschine anpassen, das zeige ich Ihnen dann. Sie müssen ein Laufwerk freigeben für Docker und das bedeutet, das wird das Laufwerk sein, wo letztendlich die Datenbankmedien drauf liegen. Sie müssen sich Docker so vorstellen, dass es quasi eine sehr abgespeckte Version einer virtuellen Maschine ist und Sie möchten ja diesen Docker-Container möglicherweise regelmäßig ersetzen. Neue Versionen werden von dem Docker-Container rauskommen, und deswegen geht man in der Regel hin und versucht, solche Docker-Container "stateless" zu lassen, das heißt, Informationen, die Sie möglicherweise über einen längeren Zeitraum brauchen, wie eine Datenbank, werden nicht in dem Docker letztendlich gespeichert, sondern schlicht und ergreifend auf der lokalen, auf der Host-Maschine. Und dafür muss die Freigabe für ein Laufwerk stattfinden. Dann starten Sie das Docker-Image. Und der Start sieht so aus, sieht ein bisschen fies aus, gebe ich zu. Nichtsdestotrotz werden wir die einzelnen Schritte kurz durchgehen und Sie werden auch sehen, dass das Statement zum Schluss doch relativ einfach und auch logisch ist an der Stelle. Mit ein bisschen Geduld sollte innerhalb von 5-10 Minuten auf Ihrer Maschine ein Docker laufen, das heißt letztendlich Sie die Möglichkeit haben, ein Docker-Image herunterzuziehen. Das ist alles in dieser Docker-Run-Anweisung, die Sie da sehen. Und wenn alles gut geht, startet dieser Container den SQL-Server, vNext wird sofort mit gestartet und Sie können drauf zugreifen an der Stelle. Das Image selber, Sie sehen's, ist von Microsoft und ist letztendlich ein Linux. Das bedeutet, Sie haben dann hier SQL-Server auf Linux und können den dann ganz bequem mit Ihrem SQL Server Management Studio administrieren. Um Ihnen die Docker-Installation schnell zeigen zu können, bin ich auf den Desktop gewechselt. Zunächst einmal auf ins Internet! Wir müssen der Seite "docker.com" einen kleinen Besuch abstatten. Ich hätte auch suchen können, ich wäre auch hier auf der sympathischen, blauen Seite gelandet. Hier unter "Get Docker" können Sie den entsprechenden Docker-Client installieren, zum Beispiel für Mac, Windows, Linux, "Download", Installation laufen lassen. Es kann sein, dass Ihre Maschine einmal gebootet werden muss. Wenn alles gelaufen ist. dann sollte es folgendermaßen auf Ihrer Maschine aussehen. Ich schließe den Browser mal. Wenn Sie zum Beispiel "Kommandozeile" eingeben, dann müsste, wenn Sie "docker info" eingeben, entsprechend eine Reihe von Informationen ausgegeben werden, auf keinen Fall eine Fehlermeldung oder Ähnliches, das heißt mit "docker info" können Sie relativ leicht prüfen, ob Docker korrekt ausgeführt wird. Darüber hinaus sollte hier ein kleiner, dicker Wal zu erkennen sein. Wenn ich hier drauf klicke und auf "Settings" gehe, dann müssen Sie einmal kurz "Shared Drives" einen Besuch abstatten. Ich habe meine Datenbanken gleich auf der C-Partition, gleichzeitig meiner einzigen Partition, liegen, das heißt, ich muss diese entsprechend freigeben. Unter "Advanced" können Sie festlegen, wieviele CPUs das Docker-Image verwenden darf, beziehungsweise wieviel Speicher, und da muss ich für mindestens 3,5 GB sorgen, das heißt, ich ziehe die Leiste einfach mal knapp auf etwas über 6 GB. Das heißt, hier die Einstellung für den Speicher ist wichtig, hier, dass ich entsprechend freigeben möchte, das ist wichtig. Drücke auf "Apply" und damit sollte das erledigt sein. Ich mache es mal zu. Trau, schau, wem, ich schaue nochmal nach. Hier das Häkchen und der... Oh, den Speicher hat er nicht mitgenommen. Den setze ich nochmal... Offensichtlich muss ich pro Seite einmal auf "Apply" klicken. So, aber dann ist auch das erledigt, das heißt, ich kann das Fenster hier erstmal wieder schließen. Und während er jetzt noch startet, dann kann ich schon mal diese kleine Batch öffnen. Das ist die Anweisung, die Sie gerade gesehen haben auf der Folie. Ich breche das mal ein bisschen um, damit Sie auch ein bisschen genauer sehen, was denn an einzelnen Parametern übergeben werden muss. Wenn der Docker-Neustart gleich fertig ist... scheint so zu sein, dann starte ich im Hintergrund schon mal diese Batch. Was jetzt passiert, er zieht die notwendigen Dateien aus dem Internet und entpackt sie und startet das Image an der Stelle, d. h., es geht automatisch, da muss ich mich nicht drum kümmern. Das lege ich mal so ein bisschen in den Hintergrund. Dann zurück hier zu den Details des Aufrufes. Ich brauche eine Anweisung "docker run". Das bedeutet, das Image soll notfalls heruntergeladen, auf jeden Fall gestartet werden. Mit "-e" übergebe ich Umgebungsvariablen, "e" für "environment". Und diese Umgebungsvariablen werden von SQL Server vNext in diesem Image entsprechend benötigt, und zwar einmal "ACCEPT EULA", also, dass ich die User-Bedingungen akzeptiere, und zum anderen lege ich auch das SA-Kennwort auf die Art und Weise fest, das heißt, das, was ich an Kennwort habe, muss eine gewisse Komplexität haben, also, dass es für mich etwas ist, was ich mir noch merken kann, aber das etwas komplexer ist, und entsprechend wird dann für den SA verwendet. Dann muss ich festlegen, mit welchem Port ich mit dem Container kommunizieren möchte. Intern ist das der Port 1433, welches der Standard-Port ist für SQL-Server. Nach außen hin ist es ein anderer Port, das mache ich deswegen, damit ich vielleicht parallel noch eine lokale Instanz auf meiner Maschine laufen lassen kann, da ist es nicht 1433, da ist es 2433. Dann muss ich angeben, wo die Datenbanken liegen sollen. Ich möchte nicht, dass die Datenbanken im Image liegen, nicht im Container liegen. Weil das würde bedeuten, wenn ich quasi den Container nochmal runterziehen muss vom Internet, Stopp mache und Start mache oder Ähnliches, dann bedeutet das, dass meine Datenbanken weg wären. Das möchte ich natürlich nicht. Ich möchte diesen Container "stateless" haben an der Stelle. Da soll nichts quasi daran erinnern, was ich denn wirklich an Informationen habe. Diese Erinnerung darf auf keinen Fall in dem Container liegen, sondern muss außerhalb liegen. Deshalb gehe ich hin und gebe mit "-v" an, wo entsprechend der Ordner gemappt werden soll. Intern ist es der Teil, legt SQL vNext die Datenbankmedien an diese Stelle. Das ist ein Linux-Pfad, letztendlich ist ja auch SQL-Server auf Linux, das macht Sinn. Und diesen Pfad mappe ich hin auf meine Host-Maschine in dieses Verzeichnis. Und wenn ich mir das Verzeichnis angucke, es muss natürlich existieren, dann, nichts weiter drin momentan, dann ist es leer so weit es ist. Das heißt, damit sage ich okay, alles, was innerhalb des Containers hier gespeichert wird, wird hier auf "C:\Temp\Docker\Databases" abgelegt. Dann muss ich noch angeben, welches Image ich denn gerne hätte, und das heißt einfach "microsoft/mssql-server-linux". Und das war's eigentlich schon. D. h., wenn man sich das so anschaut, dann ist es gar nicht so kompliziert. Man muss halt nur wissen, was man an welcher Stelle genau einträgt. Und Sie sehen hier, er ist noch dabei, das entsprechende Teil eines Images herunterzuladen für den Container. Er ist jetzt bei 190 von 231. Lassen wir ihm noch einen kleinen Moment Zeit. Ich kann das hier dann soweit wieder schließen und damit sollte in wenigen Sekunden zum einen der Download fertig sein, dann entsprechend wird auch dieser Teil noch entpackt. Und dann sollten eigentlich relativ schnell hier an der Stelle ein paar Dateien auftauchen. Das Ganze managen werde ich mit meinem SQL Server Management Studio. Es gibt mittlerweile auch eine vNext-Version vom Management Studio. Letztendlich kann ich aber hier mit dem SQL Server Management Studio von 2016 auch ohne Weiteres darauf zugreifen, insofern tue ich das einfach mal. Die Verbindung, die ich aufbaue, geht nach "localhost", Port 2433. Und das wird für den SQL-Servernamen mit einem Komma notiert, also kein Doppelpunkt zwischen "localhost" und der "2-4", sondern ein Komma an der Stelle. Dann muss ich angeben SQL-Server-Authentifizierung. Das Login ist "SA", das Kennwort ist das, was ich gerade beim Start angegeben habe. Der Container wird ausgeführt und ich konnte mich mit der SQL-Server-vNext-Instanz verbinden. Und hiermit habe ich jetzt ganz normal Zugriff auf diese Instanz in dem Docker-Container. Wenn ich in den Ordner gehe, dann sehen Sie jetzt hier die Datenbankmedien der entsprechenden Datenbanken, die standardmäßig immer dabei sind, der Systemkatalog, wie man so sagt. Und ich kann jetzt hingehen und zum Beispiel eine neue Datenbank anlegen, "create database HalloWelt". Das einmal kurz ausführen und Sie sollten sehen, dass hier auch die Medien entsprechend angelegt werden an der Stelle. Den SQL-Server stoppen können Sie relativ einfach, indem Sie eine Anweisung "shutdown" ausführen. In dem Moment wird die SQL-Server-Instanz an der Stelle gestoppt und steht dann nicht mehr zur Verfügung, das heißt, wenn ich das ausführe, dann war's das an der Stelle. So, und damit habe ich jetzt meinen Spielplatz quasi aufgesetzt. Ich kann jetzt gleich die SQL-Server-Instanz wieder starten, das ist kein Problem. Dadurch dass ich die Datenbanken außerhalb des Images liegen habe, außerhalb der Containers liegen habe, wird das auch ohne Weiteres meine "HalloWelt"-Datenbank wiederfinden, und wir können dann weitermachen.

Datenzugriff mit ADO.NET und .NET Core

Lernen Sie, wie mit Ihrer .NET Core-Anwendung auf relationale Datenbanken wie z.B. SQL Server oder SQLite zugreifen.

2 Std. 49 min (28 Videos)
Derzeit sind keine Feedbacks vorhanden...
 
Software:
Exklusiv für Abo-Kunden
Erscheinungsdatum:12.04.2017

Dieser Online-Kurs ist als Download und als Streaming-Video verfügbar. Die gute Nachricht: Sie müssen sich nicht entscheiden - sobald Sie das Training erwerben, erhalten Sie Zugang zu beiden Optionen!

Der Download ermöglicht Ihnen die Offline-Nutzung des Trainings und bietet die Vorteile einer benutzerfreundlichen Abspielumgebung. Wenn Sie an verschiedenen Computern arbeiten, oder nicht den ganzen Kurs auf einmal herunterladen möchten, loggen Sie sich auf dieser Seite ein, um alle Videos des Trainings als Streaming-Video anzusehen.

Wir hoffen, dass Sie viel Freude und Erfolg mit diesem Video-Training haben werden. Falls Sie irgendwelche Fragen haben, zögern Sie nicht uns zu kontaktieren!