This guide describes how to setup an instance of MSSQL Server for local development. Please make sure to check for additional best practices and security details, if you want to use this instance as a production server.
Create a new folder anywhere you like. Within it, create 4 new folders and change the owner to 1001 so that the container can write data to it.
mkdir mssql cd mssql mkdir sqlsystem mkdir sqldata mkdir sqllog mkdir sqlbackup chown 10001:10001 sqlsystem/ chown 10001:10001 sqldata/ chown 10001:10001 sqllog/ chown 10001:10001 sqlbackup/
To setup MSSQL Server with Docker-Compose, use this docker-compose.yml file. Save this file in the previously created root-folder.
version: '3'
services:
db:
ports:
- 1433:1433
environment:
ACCEPT_EULA: "Y"
SA_PASSWORD: yourVeryStrongPassword
MSSQL_DATA_DIR: /var/opt/sqlserver/data
MSSQL_LOG_DIR: /var/opt/sqlserver/log
MSSQL_BACKUP_DIR: /var/opt/sqlserver/backup
volumes:
- ./sqlsystem:/var/opt/mssql
- ./sqldata:/var/opt/sqlserver/data
- ./sqllog:/var/opt/sqlserver/log
- ./sqlbackup:/var/opt/sqlserver/backup
image: mcr.microsoft.com/mssql/server
restart: always
healthcheck:
test: ["CMD-SHELL", "/opt/mssql-tools/bin/sqlcmd -S localhost -U sa -P example_123 -Q 'SELECT 1' || exit 1"]
interval: 10s
retries: 10
start_period: 10s
timeout: 3s
Run the following bash commands to start or stop the container.
# Start the docker container ("-d" to run it as a daemon)
docker-compose up -d
# stop the docker container
docker-compose down