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

Creazione di un'immagine Docker di SQL Server personalizzata sopra l'immagine ufficiale

Ciao gente, quindi oggi discutiamo di come possiamo creare la nostra immagine personalizzata di SQL Server sopra l'immagine ufficiale.

Questo può essere davvero utile in più scenari come quando abbiamo un nuovo membro del team che si unisce al nostro team. Invece di fornire loro una nuova istanza di SQL Server, possiamo avere un'immagine della configurazione iniziale e possono semplicemente estrarla ed essere pronti a lavorarci

Prerequisito

  • Docker Desktop attivo e funzionante sulla macchina. Può essere scaricato da qui https://docs.docker.com/v17.09/docker-for-windows/install/
  • Account su Docker Hub in modo da poter pubblicare e quindi estrarre la nostra immagine docker personalizzata di Sql Server
  • Esecuzione dell'istanza di un nuovo contenitore di SQL Server dall'immagine ufficiale disponibile nell'hub docker 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

Configurazione di SQL Server 🔥

  • Una volta che il server è attivo e funzionante, accedi a SQL Server utilizzando SQL Server Management Studio con l'indirizzo IP dell'host
  • Il nome utente sarebbe SU e la password è MYPASSWORD123 come utilizzato nel comando precedente per eseguire il contenitore
  • Poi possiamo configurare il nostro server come il database, le tabelle manualmente o utilizzando qualsiasi file di backup ecc.
  • Ora abbiamo il nostro database a posto e vogliamo creare un'immagine di questa configurazione in modo che la prossima volta che qualcuno estrarrà l'immagine non dovrà più importare manualmente il database

Crea un'immagine Docker personalizzata

  • In primo luogo, arresta il contenitore in esecuzione utilizzando il comando
docker stop MyContainerName
  • Successivamente inseriamo le nostre modifiche nel contenitore in modo da poterne creare un'immagine
docker commit MyContainerName
  • Quindi copia l'immagine del nostro contenitore specifico dall'elenco usando il comando
Docker images
  • L'immagine appena creata non ha un repository e un tag. Esegui il comando seguente per taggare l'immagine
docker tag <imageID> <docker-hub-username>/<docker-hub-repository-name>:<tag-name>

Ad esempio:tag docker a82e969d1395 rajatsrivas/myownsql:sqlCustomImage

  • Ora la nostra immagine è stata creata e possiamo creare un contenitore utilizzando l'immagine
docker run -p 1433:1433 --name sqlCustomImage -d rajatsrivas/ myownsql
  • Se hai effettuato l'accesso all'hub Docker su Docker Desktop locale, questo passaggio verrà saltato altrimenti accedi utilizzando il prompt dei comandi

docker login -username=rajatsrivas

  • Inserisci la password nella riga successiva e infine invia l'immagine al repository dell'hub Docker

docker push rajatsrivas/myownsql

  • Vai a https://hub.docker.com/
  • Dovremmo avere l'immagine che abbiamo trasferito all'hub Docker

Tira ed esegui la nostra immagine personalizzata 🏃‍♂️

  • Trascina l'immagine su qualsiasi macchina usando il comando

docker pull rajatsrivas/myownsql:latest

  • Esegui il container e accedi al server su SSMS. Il server dovrebbe avere il database che è stato importato e configurato nei passaggi precedenti
docker run -p 1433:1433 --name <container-name> -d rajatsrivas/myownsql:latest

Conclusione

Quindi ecco che abbiamo implementato la nostra immagine personalizzata su un'immagine docker ufficiale disponibile.

Questo è un piccolo passo nell'onboarding, ma è possibile sfruttare implementazioni simili per configurare ambienti sandbox in modo molto rapido ed efficiente.

Spero che questo sia stato utile. Continua a imparare, continua a costruire