Install SQL Server locally on Ubuntu Using Docker



Install SQL Server locally on Ubuntu Using Docker

Install SQL Server locally on Ubuntu Using Docker

Walk-through outlining how to install and run sql server locally on Ubuntu using Docker.

Create directories and grant permissions:
mkdir data && sudo chown 10001 data
mkdir log && sudo chown 10001 log
mkdir secrets && sudo chown 10001 secrets

PWGEN (https://manpages.ubuntu.com/manpages/trusty/man1/pwgen.1.html):
sudo apt-get update && sudo apt-get install pwgen
pwgen -s -y

To pull and run the latest SQL server 2022 Container Image (https://learn.microsoft.com/en-us/sql/relational-databases/security/password-policy?view=sql-server-ver16):
sudo docker run -e ‘ACCEPT_EULA=Y’ -e ‘MSSQL_SA_PASSWORD=YOUR_PASSWORD’ -p 1433:1433 –name sqlserverlocaldev –hostname sqlserverlocaldev -v ‘YOUR_DATA_PATH:/var/opt/mssql/data’ -v ‘YOUR_LOGS_PATH:/var/opt/mssql/log’ -v ‘YOUR_SECRETS_PATH:/var/opt/mssql/secrets’ -d mcr.microsoft.com/mssql/server:2022-latest

SQL Commands:
sudo docker exec -it sqlserverlocaldev “bash”
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P “YourNewStrong@Passw0rd”
CREATE DATABASE DockerSqlTutorial;
GO
USE DockerSqlTutorial;
GO
CREATE TABLE WhatWeLearned (step INT, description NVARCHAR(300), completed bit);
GO
INSERT INTO WhatWeLearned VALUES (1, ‘Run sql server locally using docker’, 1);
GO
INSERT INTO WhatWeLearned VALUES (2, ‘Persist data locally, so it is not deleted after we remove the container image’ , 1);
GO
SELECT * FROM WhatWeLearned;
GO

Stop and Delete image and container:
sudo docker ps -a
sudo docker stop sqlserverlocaldev
sudo docker rm sqlserverlocaldev
sudo docker ps -a
sudo docker image ls
sudo docker rmi IMAGE_ID

Verify database persistance through terminal:
sudo docker ps -a
sudo docker exec -it sqlserverlocaldev “bash”
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P “YourNewStrong@Passw0rd”
SELECT name, database_id, create_date FROM sys.databases;
GO
USE DockerSqlTutorial;
GO
SELECT * FROM WhatWeLearned;
GO