Sqlserver
 sql >> Datenbank >  >> RDS >> Sqlserver

Erstellen eines benutzerdefinierten SQL Server-Docker-Images über dem offiziellen Image

Hallo Leute, lassen Sie uns heute diskutieren, wie wir unser eigenes benutzerdefiniertes SQL Server-Image zusätzlich zum offiziellen Image erstellen können.

Dies kann in mehreren Szenarien sehr nützlich sein, z. B. wenn ein neues Teammitglied unserem Team beitritt. Anstatt ihnen eine neue Instanz von SQL Server zu geben, können wir ein Image der anfänglichen Einrichtung haben und sie können es einfach abrufen und bereit sein, daran zu arbeiten

Voraussetzung

  • Docker Desktop auf der Maschine eingerichtet und ausgeführt. Kann hier heruntergeladen werden https://docs.docker.com/v17.09/docker-for-windows/install/
  • Konto auf Docker Hub, damit wir unser benutzerdefiniertes Sql Server-Docker-Image veröffentlichen und dann abrufen können
  • Ausgeführte Instanz eines neuen SQL Server-Containers aus dem offiziellen Image, verfügbar auf dem Docker-Hub mcr.microsoft.com/mssql/server:2017-latest.
docker run -e "ACCEPT_EULA=Y" "SA_PASSWORD=MYPASSWORD123" -p 1433:1433 --name MyContainerName -d mcr.microsoft.com/mssql/server:2017-latest

Einrichten des SQL-Servers 🔥

  • Sobald wir den Server eingerichtet und ausgeführt haben, melden Sie sich mithilfe von SQL Server Management Studio mit der IP-Adresse des Hosts beim SQL Server an
  • Benutzername wäre SU und das Passwort ist MYPASSWORD123 wie im obigen Befehl verwendet, um den Container auszuführen
  • Als nächstes können wir unseren Server wie die Datenbank, Tabellen manuell oder mit einer Sicherungsdatei usw. einrichten
  • Nun haben wir unsere Datenbank eingerichtet und möchten ein Image dieser Einrichtung erstellen, damit jemand, wenn er das nächste Mal das Image abruft, die Datenbank nicht mehr manuell importieren muss

Benutzerdefiniertes Docker-Image erstellen

  • Stoppen Sie zuerst den laufenden Container mit dem Befehl
docker stop MyContainerName
  • Als Nächstes übertragen wir unsere Änderungen auf den Container, damit wir ein Image davon erstellen können
docker commit MyContainerName
  • Kopieren Sie dann das Image unseres spezifischen Containers aus der Liste mit dem Befehl
Docker images
  • Das neu erstellte Image hat kein Repository und kein Tag. Führen Sie den folgenden Befehl aus, um das Bild zu taggen
docker tag <imageID> <docker-hub-username>/<docker-hub-repository-name>:<tag-name>

Beispiel:Docker-Tag a82e969d1395 rajatsrivas/myownsql:sqlCustomImage

  • Jetzt ist unser Image erstellt und wir können mit dem Image einen Container erstellen
docker run -p 1433:1433 --name sqlCustomImage -d rajatsrivas/ myownsql
  • Wenn Sie auf dem lokalen Docker-Desktop beim Docker-Hub angemeldet sind, wird dieser Schritt übersprungen, ansonsten melden Sie sich über die Eingabeaufforderung an

docker login -username=rajatsrivas

  • Geben Sie das Passwort in die nächste Zeile ein und schieben Sie das Image schließlich in das Docker-Hub-Repository

docker push rajatsrivas/myownsql

  • Gehen Sie zu https://hub.docker.com/
  • Wir sollten das Image haben, das wir an den Docker-Hub gepusht haben

Ziehen Sie unser benutzerdefiniertes Image herunter und führen Sie es aus 🏃‍♂️

  • Ziehen Sie das Image mit dem Befehl auf eine beliebige Maschine

docker pull rajatsrivas/myownsql:latest

  • Führen Sie den Container aus und greifen Sie auf den Server auf dem SSMS zu. Der Server sollte die Datenbank haben, die in den vorherigen Schritten importiert und eingerichtet wurde
docker run -p 1433:1433 --name <container-name> -d rajatsrivas/myownsql:latest

Fazit

Da haben wir also unser benutzerdefiniertes Image auf einem verfügbaren offiziellen Docker-Image implementiert.

Dies ist ein ziemlich kleiner Schritt beim Onboarding, aber man kann ähnliche Implementierungen nutzen, um Sandbox-Umgebungen sehr schnell und effizient einzurichten.

Hoffe, das war nützlich. Lernen Sie weiter und bauen Sie weiter auf