sql >> Database teknologi >  >> RDS >> Sqlserver

Oprettelse af et brugerdefineret SQL Server Docker-billede oven på det officielle billede

Hej folk, så lad os i dag diskutere, hvordan vi kan skabe vores eget brugerdefinerede SQL Server-billede oven på det officielle billede.

Dette kan være virkelig nyttigt i flere scenarier, som når vi har et nyt teammedlem, der slutter sig til vores team. I stedet for at give dem en ny forekomst af SQL Server kan vi få et billede af den indledende opsætning, og de kan bare trække det og være klar til at arbejde på det

Forudsætning

  • Docker Desktop kører på maskinen. Kan downloades herfra https://docs.docker.com/v17.09/docker-for-windows/install/
  • Konto på Docker Hub, så vi kan publicere og derefter trække vores tilpassede SQL Server docker-billede
  • Kører forekomst af en ny SQL Server-container fra det officielle billede tilgængeligt 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

Opsætning af SQL Server 🔥

  • Når vi har serveren kørende, skal du logge ind på SQL Serveren ved hjælp af SQL Server Management-studiet med værtens IP-adresse
  • Brugernavnet ville være SU og adgangskoden er MYPASSWORD123 som brugt i kommandoen ovenfor til at køre containeren
  • Dernæst kan vi konfigurere vores server som databasen, tabeller manuelt eller ved hjælp af enhver backup-fil osv.
  • Nu har vi vores database på plads, og vi ønsker at lave et billede af denne opsætning, så næste gang nogen trækker billedet, behøver de ikke længere at importere databasen manuelt

Opret brugerdefineret Docker-billede

  • Stop først den kørende container ved hjælp af kommandoen
docker stop MyContainerName
  • Derefter skubber vi vores ændringer til containeren, så vi kan bygge et billede af den
docker commit MyContainerName
  • Kopiér derefter billedet af vores specifikke container fra listen ved hjælp af kommandoen
Docker images
  • Det nyoprettede billede har ikke et lager og tag. Udfør følgende kommando for at tagge billedet
docker tag <imageID> <docker-hub-username>/<docker-hub-repository-name>:<tag-name>

For eksempel:docker tag a82e969d1395 rajatsrivas/ myownsql:sqlCustomImage

  • Nu er vores billede bygget, og vi kan oprette en container ved hjælp af billedet
docker run -p 1433:1433 --name sqlCustomImage -d rajatsrivas/ myownsql
  • Hvis du er logget ind på docker hub på lokal Docker Desktop, vil dette trin blive sprunget over, ellers login ved hjælp af kommandoprompten

docker login -username=rajatsrivas

  • Indtast adgangskoden i næste linje og skub til sidst billedet til docker hub-lageret

docker push rajatsrivas/myownsql

  • Gå til https://hub.docker.com/
  • Vi burde have det billede, som vi sendte til docker-hubben

Træk og kør vores brugerdefinerede billede 🏃‍♂️

  • Træk billedet til enhver maskine ved hjælp af kommandoen

docker pull rajatsrivas/myownsql:latest

  • Kør containeren og få adgang til serveren på SSMS. Serveren skal have den database, som blev importeret og sat op i de tidligere trin
docker run -p 1433:1433 --name <container-name> -d rajatsrivas/myownsql:latest

Konklusion

Så der er det, at vi har implementeret vores brugerdefinerede billede oven på et tilgængeligt officielt docker-billede.

Dette er et ganske lille skridt i onboarding, men man kan udnytte lignende implementeringer til at opsætte sandbox-miljøer meget hurtigt og effektivt.

Håber dette var nyttigt. Bliv ved med at lære fortsæt med at bygge


  1. Brug af en IF-erklæring i en MySQL SELECT-forespørgsel

  2. 4 måder at beskytte følsomme oplysninger fra dine kunder på

  3. Gennemtving en begrænsning med fremmednøgle til kolonner i samme tabel

  4. Python og SQLite forbehold