Sqlserver
 sql >> база данни >  >> RDS >> Sqlserver

Създаване на персонализирано изображение на SQL Server Docker върху официалното изображение

Здравейте хора, нека днес да обсъдим как можем да създадем собствено персонализирано изображение на SQL Server върху официалното изображение.

Това може да бъде наистина полезно в множество сценарии, като например когато имаме нов член на екипа, който се присъединява към нашия екип. Вместо да им дадем нов екземпляр на SQL Server, можем да имаме изображение на първоначалната настройка и те могат просто да го изтеглят и да са готови да работят върху него

Предварително условие

  • Docker Desktop стартира и работи на машината. Може да се изтегли от тук https://docs.docker.com/v17.09/docker-for-windows/install/
  • Акаунт в Docker Hub, за да можем да публикуваме и след това да изтеглим нашето персонализирано докер изображение на Sql Server
  • Изпълнение на екземпляр на нов контейнер на SQL Server от официалното изображение, достъпно в 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

Настройване на SQL Server 🔥

  • След като сървърът стартира и работи, влезте в SQL Server с помощта на SQL Server Management Studio с IP адреса на хоста
  • Потребителското име ще бъде SU и паролата е MYPASSWORD123 както се използва в командата по-горе за стартиране на контейнера
  • След това можем да настроим нашия сървър като база данни, таблици ръчно или с помощта на всеки архивен файл и т.н.
  • Сега разполагаме с нашата база данни и искаме да създадем изображение на тази настройка, така че когато следващия път някой изтегли изображението, той вече не трябва ръчно да импортира базата данни

Създайте персонализирано изображение на Docker

  • Първо, спрете работещия контейнер с помощта на командата
docker stop MyContainerName
  • След това притискаме промените си към контейнера, за да можем да изградим изображение за него.
docker commit MyContainerName
  • След това копирайте изображението на нашия конкретен контейнер от списъка с помощта на командата
Docker images
  • Новосъздаденото изображение няма хранилище и маркер. Изпълнете следната команда, за да маркирате изображението
docker tag <imageID> <docker-hub-username>/<docker-hub-repository-name>:<tag-name>

Например:docker tag a82e969d1395 rajatsrivas/ myownsql:sqlCustomImage

  • Сега нашето изображение е изградено и можем да създадем контейнер с помощта на изображението
docker run -p 1433:1433 --name sqlCustomImage -d rajatsrivas/ myownsql
  • Ако сте влезли в docker hub на локален Docker Desktop, тази стъпка ще бъде пропусната, иначе влезте с помощта на командния ред

docker login -username=rajatsrivas

  • Въведете паролата в следващия ред и накрая натиснете изображението в хранилището на docker hub

docker push rajatsrivas/myownsql

  • Отидете на https://hub.docker.com/
  • Трябва да имаме изображението, което избутахме в докер центъра

Издърпайте и стартирайте нашето персонализирано изображение 🏃‍♂️

  • Изтеглете изображението на всяка машина с помощта на командата

docker pull rajatsrivas/myownsql:latest

  • Стартирайте контейнера и осъществете достъп до сървъра на SSMS. Сървърът трябва да разполага с базата данни, която е била импортирана и настроена в по-ранните стъпки
docker run -p 1433:1433 --name <container-name> -d rajatsrivas/myownsql:latest

Заключение

И така, ние внедрихме нашето персонализирано изображение върху налично официално изображение на docker.

Това е доста малка стъпка в въвеждането, но може да се използват подобни реализации за настройване на пясъчни среди много бързо и ефективно.

Надявам се това да е било полезно. Продължавайте да учите, продължавайте да изграждате


  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Моля, помогнете за подобряване на статистиката на SQL Server!

  2. SQL изберете всички, ако параметърът е нулев, иначе връща конкретен елемент

  3. Съвети за намаляване на сложността на вашия SQL сървър

  4. Как може хигиенизирането, което избягва единични кавички, да бъде победено от SQL инжекция в SQL Server?

  5. има ли предимство varchar(500) пред varchar(8000)?