I run the following command on my linux machine, and want to attach a volume, like in Mysql
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=12345678' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest
I run the following command on my linux machine, and want to attach a volume, like in Mysql
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=12345678' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2017-latest
You can attach a volumne on the Microsoft SQL Server too, as described on the Microsoft Documentation:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=12345678' -p 1433:1433 -v <host directory>/data:/var/opt/mssql/data -v <host directory>/log:/var/opt/mssql/log -v <host directory>/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2017-latest
Using the above command you mount three folders of the container to a host directory:
<host directory>/data:/var/opt/mssql/data<host directory>/log:/var/opt/mssql/log<host directory>/secrets:/var/opt/mssql/secretsYou can also use a data volume container instead of a mounted host directory:
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=12345678' -p 1433:1433 -v sqlvolume:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
You can use this as docker-compose.yaml file:
services:
mssql:
image: mcr.microsoft.com/mssql/server:2022-latest
ports:
- 1433:1433
volumes:
- ./data:/var/opt/mssql/
- ./log:/var/opt/mssql/log
- ./secrets:/var/opt/mssql/secrets
environment:
- ACCEPT_EULA=Y
- SA_PASSWORD=123456789
Then, to prevent permission denied error create data,log and secrets folder and change their permission:
mkdir data && sudo chown 10001 data
mkdir log && sudo chown 10001 log
mkdir secrets && sudo chown 10001 secrets
And finally, use docker-compose up -d to start the container.
inspect the file /var/opt/mssql/mssql.conf and you will get the location of all data under [filelocation] section:
[filelocation]
#defaultbackupdir # Default directory for backup files
#defaultdatadir # Default directory for data files
#defaultdumpdir # Default directory for crash dump files
#defaultlogdir # Default directory for log files
#errorlogfile # Error log file location
#masterdatafile # Master database data file location
#masterlogfile # Master database log file location