please bear in mind this is my first time posting here I might not know all the rules and stuff.
so I have just started working with dockers and images. I created a small .Net app and I used MsSQLServer docker image in my app. The app gets connected with the server and I am able to create database using CodeFirst approach (add-migration and update database works fine).
i am running my SQL container with -rm mode. Although it has a volume mounted to it but i have to create database every time i rerun the container. I read that if we want our data not to get lost when we delete the container we have to mount volumes to our container. i had done the same thing using MongoDb docker image and it worked fine. my data is still present even when i stop and rerun my MongoContainer. but my MSSQL is unable to retain data. here is the command i m using to run my docker image ( i know about docker-compose but i am avoiding using it for now)
docker run -d --rm --name mssqlserver -p 1433:1433 -e "ACCEPT_EULA=Y" -e MSSQL_SA_PASSWORD=********** -v sqlData:/data/db mcr.microsoft.com/mssql/server
Note: this says it will not delete named volume with --rm https://docs.docker.com/engine/reference/run/#clean-up---rm
CodePudding user response:
The path you mount the volume on is a Linux path, so you need to use forward slashes rather than back-slashes, like this
docker run -d --rm --name mssqlserver -p 1433:1433 -e "ACCEPT_EULA=Y" -e MSSQL_SA_PASSWORD=********** -v sqlData:/var/opt/mssql mcr.microsoft.com/mssql/server