I'm trying to run a SQL Server Database in a container and have been unable to mount a volume using docker-compose. I am able to persist data using docker run, however.
SETUP
docker volume ls
DRIVER VOLUME NAME local db-data-system local db-data-user local docker-containers_db-data-system local docker-containers_db-data-user RUNNING DOCKER FROM COMMAND LINE
I'm able to run a container using docker run that persists data (see testdatabase and arbq_app).
sudo docker run -e 'ACCEPT_EULA=Y' -e 'P@ssw0rd' \ --name 'arbq-db' -e 'MSSQL_PID=Developer' -p 1401:1433 \ -v db-data-system:/var/opt/mssql -v db-data-user:/var/opt/sqlserver \ -d mcr.microsoft.com/mssql/server:2017-latest In dBeaver: SELECT name FROM sys.databases
master tempdb model msdb testdatabase arbq_app WITH DOCKER COMPOSE
docker-compose.yml:
version: '3.6' services: # Another Container another-container: content: some-content # SQL Server arbq-db: container_name: arbq-db image: mcr.microsoft.com/mssql/server:2017-latest ports: - "1401:1433" environment: ACCEPT_EULA: Y SA_PASSWORD: P@ssw0rd MSSQL_PID: Developer volumes: - db-data-user:/var/opt/sqlserver - db-data-system:/var/opt/mssql volumes: db-data-user: db-data-system: I run docker-compose up --build
In dBeaver: SELECT name FROM sys.databases
master tempdb model msdb docker inspect -f '{{ .Mounts }}' e02bd89ccc38
[{volume docker-containers_db-data-user /var/lib/docker/volumes/docker-containers_db-data-user/_data /var/opt/sqlserver local rw true } {volume docker-containers_db-data-system /var/lib/docker/volumes/docker-containers_db-data-system/_data /var/opt/mssql local rw true }] I honestly don't know what docker-containers_db-data-user and docker-containers_db-data-system are, but they don't contain the db data I need persisted!
What can I do to ensure that the testdatabase and arbq_app databases persist in the container when using docker-compose?
Thanks in advance.