Come ho scritto tempo fa, utilizzo SQL Server 2019 per Linux con docker lanciando questo comando:
1
docker run --name sqlserver-2019 -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Ti6collegato!' -p 1433:1433 -d mcr.microsoft.com/mssql/server:2019-latest
per poi connettermi al server con SQL Server Management Studio per interagire con database e tabelle.
Ma mi sono reso conto che non utilizzo un volume e quindi i dati sono salvati all’interno del container docker. Se volessi passare ad una nuova versione dell’immagine per generare un nuovo container perderei ogni dato.
Per avere una visualizzazione più chiara dei vari parametri relativi all’immagine docker, ho pensato di utilizzare Docker Compose.
Dopo una ricerca su google, ho trovato questo post scritto da Jason Robert: Exploring SQL Server 2019 with Docker.
L’autore descrive come installare SQL Server 2019 per Linux utilizzando Docker. Nel suo caso la necessità è quella di poter utilizzare SQL Server su MacBook. E alla fine descrive come utilizzare Docker Compose perchè anche lui preferisce il file YAML per la possibilità di visualizzare i parametri in maniera chiara rispetto alla linea di comando. Sebbene Docker Compose sia pensato per lanciare diversi containers contemporaneamente, è possibile anche utilizzarlo per lanciare un singolo container.
Ecco il file docker-compose.yml
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
version: "3.7"
services:
db:
container_name: mssql-2019
image: mcr.microsoft.com/mssql/server:2019-latest
ports:
- 1433:1433
restart: always
volumes:
- mssql-2019-data:/var/opt/mssql
environment:
SA_PASSWORD: "Ti6collegato!"
ACCEPT_EULA: "Y"
volumes:
mssql-2019-data:
A questo punto, dal folder nel quale si trova il file .yml si può eseguire questo comando:
1
docker-compose up -d
Questo comando crea il container con SQL Server 2019 e il volume (mssql-2019-data
) che contiene i dati se non esistono già e poi fa partire il container.
Per poter utilizzare il file .yml anche in altre occasioni, ho creato un repository su github: mssql-compose.