Sqlserver
 sql >> Base de données >  >> RDS >> Sqlserver

Création d'une image SQL Server Docker personnalisée au-dessus de l'image officielle

Bonjour les gens, alors aujourd'hui, discutons de la façon dont nous pouvons créer notre propre image SQL Server personnalisée en plus de l'image officielle.

Cela peut être très utile dans plusieurs scénarios, comme lorsqu'un nouveau membre de l'équipe se joint à notre équipe. Au lieu de leur donner une nouvelle instance de SQL Server, nous pouvons avoir une image de la configuration initiale et ils peuvent simplement l'extraire et être prêts à travailler dessus

Prérequis

  • Docker Desktop opérationnel sur la machine. Peut être téléchargé ici https://docs.docker.com/v17.09/docker-for-windows/install/
  • Compte sur Docker Hub afin que nous puissions publier puis extraire notre image docker Sql Server personnalisée
  • Exécution d'une instance d'un nouveau conteneur SQL Server à partir de l'image officielle disponible sur le 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

Configurer le serveur SQL 🔥

  • Une fois que le serveur est opérationnel, connectez-vous à SQL Server à l'aide de SQL Server Management Studio avec l'adresse IP de l'hôte
  • Le nom d'utilisateur serait SU et le mot de passe est MYPASSWORD123 tel qu'utilisé dans la commande ci-dessus pour exécuter le conteneur
  • Ensuite, nous pouvons configurer notre serveur comme la base de données, les tables manuellement ou en utilisant n'importe quel fichier de sauvegarde, etc.
  • Nous avons maintenant notre base de données en place et nous voulons créer une image de cette configuration afin que la prochaine fois que quelqu'un extrait l'image, il n'ait plus besoin d'importer manuellement la base de données

Créer une image Docker personnalisée

  • Tout d'abord, arrêtez le conteneur en cours d'exécution à l'aide de la commande
docker stop MyContainerName
  • Ensuite, nous poussons nos modifications sur le conteneur afin de pouvoir en créer une image
docker commit MyContainerName
  • Copiez ensuite l'image de notre conteneur spécifique à partir de la liste à l'aide de la commande
Docker images
  • L'image nouvellement créée n'a pas de référentiel ni de balise. Exécutez la commande suivante pour taguer l'image
docker tag <imageID> <docker-hub-username>/<docker-hub-repository-name>:<tag-name>

Par exemple :balise docker a82e969d1395 rajatsrivas/ myownsql:sqlCustomImage

  • Maintenant, notre image est construite et nous pouvons créer un conteneur à l'aide de l'image
docker run -p 1433:1433 --name sqlCustomImage -d rajatsrivas/ myownsql
  • Si vous êtes connecté à Docker Hub sur Docker Desktop local, cette étape sera ignorée, sinon connectez-vous à l'aide de l'invite de commande

docker login -username=rajatsrivas

  • Entrez le mot de passe dans la ligne suivante et enfin poussez l'image vers le référentiel Docker Hub

docker push rajatsrivas/myownsql

  • Allez sur https://hub.docker.com/
  • Nous devrions avoir l'image que nous avons poussée vers le hub Docker

Tirez et exécutez notre image personnalisée 🏃‍♂️

  • Tirez l'image sur n'importe quelle machine à l'aide de la commande

docker pull rajatsrivas/myownsql:latest

  • Exécutez le conteneur et accédez au serveur sur le SSMS. Le serveur doit avoir la base de données qui a été importée et configurée dans les étapes précédentes
docker run -p 1433:1433 --name <container-name> -d rajatsrivas/myownsql:latest

Conclusion

Nous avons donc implémenté notre image personnalisée au-dessus d'une image docker officielle disponible.

Il s'agit d'une toute petite étape dans l'intégration, mais on peut tirer parti d'implémentations similaires pour configurer des environnements de bac à sable très rapidement et efficacement.

J'espère que cela a été utile. Continuez à apprendre, continuez à construire