sql >> Databasteknik >  >> RDS >> Sqlserver

Skapa en anpassad SQL Server Docker-bild ovanpå den officiella bilden

Hej folk, så låt oss idag diskutera hur vi kan skapa vår egen anpassade SQL Server-bild ovanpå den officiella bilden.

Detta kan vara väldigt användbart i flera scenarier som när vi har en ny teammedlem som går med i vårt team. Istället för att ge dem en ny instans av SQL Server kan vi ha en bild av den initiala installationen och de kan bara dra den och vara redo att arbeta med den

Förutsättning

  • Docker Desktop igång på maskinen. Kan laddas ner härifrån https://docs.docker.com/v17.09/docker-for-windows/install/
  • Konto på Docker Hub så att vi kan publicera och sedan hämta vår anpassade SQL Server docker-bild
  • Kör en instans av en ny SQL Server-behållare från den officiella bilden som är tillgänglig på 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

Konfigurera SQL Server 🔥

  • När vi har servern igång loggar du in på SQL Server med SQL Server Management studio med IP-adressen till värden
  • Användarnamnet skulle vara SU och lösenordet är MYPASSWORD123 som används i kommandot ovan för att köra behållaren
  • Närnäst kan vi ställa in vår server som databasen, tabeller manuellt eller använda valfri säkerhetskopia etc.
  • Nu har vi vår databas på plats och vi vill skapa en bild av denna inställning så att nästa gång någon drar bilden behöver de inte längre importera databasen manuellt

Skapa anpassad Docker-bild

  • Stoppa först den körande behållaren med kommandot
docker stop MyContainerName
  • Närnäst skickar vi våra ändringar till behållaren så att vi kan bygga en bild av den
docker commit MyContainerName
  • Kopiera sedan bilden av vår specifika behållare från listan med kommandot
Docker images
  • Den nyskapade bilden har ingen lagringsplats och tagg. Utför följande kommando för att tagga bilden
docker tag <imageID> <docker-hub-username>/<docker-hub-repository-name>:<tag-name>

Till exempel:docker-tagg a82e969d1395 rajatsrivas/ myownsql:sqlCustomImage

  • Nu är vår bild byggd och vi kan skapa en behållare med hjälp av bilden
docker run -p 1433:1433 --name sqlCustomImage -d rajatsrivas/ myownsql
  • Om du är inloggad på docker hub på lokal Docker Desktop kommer detta steg att hoppas över annars logga in med hjälp av kommandotolken

docker login -username=rajatsrivas

  • Ange lösenordet på nästa rad och skicka till sist bilden till docker hub-förrådet

docker push rajatsrivas/myownsql

  • Gå till https://hub.docker.com/
  • Vi borde ha bilden som vi skickade till docker-hubben

Dra och kör vår anpassade bild 🏃‍♂️

  • Dra bilden till valfri dator med kommandot

docker pull rajatsrivas/myownsql:latest

  • Kör behållaren och få åtkomst till servern på SSMS. Servern bör ha databasen som importerades och konfigurerades i de tidigare stegen
docker run -p 1433:1433 --name <container-name> -d rajatsrivas/myownsql:latest

Slutsats

Så där har vi implementerat vår anpassade bild ovanpå en tillgänglig officiell docker-bild.

Detta är ett ganska litet steg i introduktionen men man kan utnyttja liknande implementeringar för att sätta upp sandlådemiljöer mycket snabbt och effektivt.

Hoppas detta var användbart. Fortsätt lära dig fortsätta bygga


  1. Är tabellnamn i MySQL skiftlägeskänsliga?

  2. Hur NULLIF() fungerar i SQL Server

  3. Vad exakt gör citattecken runt tabellnamnet?

  4. Hur man får det korta månadsnamnet från ett datum i MariaDB