env: CentOS 7
Docker Docker it-18.05.0.ce
SQL Server 2017 for Linux
Docker can be seen as a virtual machine, and much like the image used previously used Live CD, as long as into the CD-ROM drive to start, is a can immediately use the operating system. The disadvantage is remounted is back to the original default state. The volume parameters to be used to preserve the state after docker image starts.
1. instruction execution docker mount SQL Server 2017 image
To increase the parameter "-v", specify the storage path "/ dockervol"
command:
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Passw0rd@1234' -p 1433:1433 -v /dockervol:/var/opt/mssql -d microsoft/mssql-server-linux:2017-latest
[root@localhost ~]# docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=Passw0rd@1234' -p 1433:1433 -v /dockervol:/var/opt/mssql -d microsoft/mssql-server-linux:2017-latest
cf7ccddde4fd629f2d1e4e4c58ca071127d5bfd5f3b5f31ed0c2ca467b25489f
[root@localhost ~]# docker container ps -a
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
cf7ccddde4fd microsoft/mssql-server-linux:2017-latest "/opt/mssql/bin/sqls…" 5 minutes ago Up 5 minutes 0.0.0.0:1433->1433/tcp infallible_rosalind
2. Check the contents of the storage path
Can be found in the SQL Server database system has been stored in the "/ dockervol / data"
[root@localhost /]# ls
bin dev etc lib media opt root sbin sys usr
boot dockervol home lib64 mnt proc run srv tmp var
[root@localhost /]# cd dockervol/
[root@localhost dockervol]# ls
data log secrets
[root@localhost dockervol]# cd data
[root@localhost data]# ls
master.mdf modellog.ldf msdbdata.mdf tempdb.mdf
mastlog.ldf model.mdf msdblog.ldf templog.ldf
[root@localhost data]# pwd
/dockervol/data
[root@localhost data]#
3. We use sqlcmd to connect the machine to do this for verification
[root@localhost ~]# sqlcmd -S 0.0.0.0,1433 -U sa -P 'Passw0rd@1234'
1> select @@servername
2> go
--------------------------------------------------------------------------------------------------------------------------------
cf7ccddde4fd
(1 rows affected)
[root@localhost ~]# sqlcmd -S 100.168.1.202,1433 -U sa -P 'Passw0rd@1234'
1> exit
[root@localhost ~]#
4. SSMS reuse query from a remote host to make the connection
6. Try to create a test DB using sqlcmd: dbvolume
You can see the new data file stored in the path "/ dockervol / data"
[root@localhost ~]# sqlcmd -S 0.0.0.0,1433 -U sa -P 'Passw0rd@1234'
1> create database dbvolume
2> go
1>
[root@localhost data]# ls -ltr
total 54976
-rw-r-----. 1 root root 8388608 Jul 6 11:20 tempdb.mdf
-rw-r-----. 1 root root 4653056 Jul 6 11:31 master.mdf
-rw-r-----. 1 root root 8388608 Jul 6 11:38 model.mdf
-rw-r-----. 1 root root 8388608 Jul 6 11:38 modellog.ldf
-rw-r-----. 1 root root 524288 Jul 6 11:56 msdblog.ldf
-rw-r-----. 1 root root 15466496 Jul 6 11:56 msdbdata.mdf
-rw-r-----. 1 root root 8388608 Jul 6 12:06 templog.ldf
-rw-r-----. 1 root root 2097152 Jul 6 12:09 mastlog.ldf
[root@localhost data]# ls -ltr
total 71360
-rw-r-----. 1 root root 8388608 Jul 6 11:20 tempdb.mdf
-rw-r-----. 1 root root 4653056 Jul 6 11:31 master.mdf
-rw-r-----. 1 root root 524288 Jul 6 11:56 msdblog.ldf
-rw-r-----. 1 root root 15466496 Jul 6 11:56 msdbdata.mdf
-rw-r-----. 1 root root 8388608 Jul 6 12:06 templog.ldf
-rw-r-----. 1 root root 8388608 Jul 6 12:14 model.mdf
-rw-r-----. 1 root root 8388608 Jul 6 12:14 modellog.ldf
-rw-r-----. 1 root root 8388608 Jul 6 12:14 dbvolume.mdf
-rw-r-----. 1 root root 2097152 Jul 6 12:14 mastlog.ldf
-rw-r-----. 1 root root 8388608 Jul 6 12:14 dbvolume_log.ldf
[root@localhost data]#