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