CentOS Docker install sql server 2017 with volume

版权声明:複製請註明來源 https://blog.csdn.net/weixin_39392627/article/details/86558710

env: CentOS 7

        Docker docker-ce-18.05.0.ce

        SQL Server 2017 for Linux

Docker可以視為一種虛擬器,而使用的image很像以前使用過的Live光碟,只要放入光碟機啟動後,就是一個可以立即使用的作業系統。缺點是重新掛載就是回復到原本預設狀態。這次要使用到volume的參數把docker image啟動後的狀態保存下來。

1.執行docker指令掛載SQL Server 2017 image

增加參數"-v",指定存放路徑"/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.檢查存放路徑下的內容

可以發現到SQL Server的系統資料庫已經存放到"/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.我們利用sqlcmd在本機做連線查詢驗證

[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從遠端主機做連線查詢

6.嘗試用sqlcmd建立測試DB: dbvolume

可以看到新的data file存放在路徑"/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]#

 

猜你喜欢

转载自blog.csdn.net/weixin_39392627/article/details/86558710