CentOS中使用Docker安装SqlServer以及遇到的那些坑
場(chǎng)景
CentOS7中Docker的安裝與配置:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701
首先按照上面在CentOS7中安裝Docker
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關(guān)注公眾號(hào)
霸道的程序猿
獲取編程相關(guān)電子書、教程推送與免費(fèi)下載。
實(shí)現(xiàn)
1、在CenoOS上新建目錄mssqlvol,在此目錄下新建data、log、secrets三個(gè)目錄,用來做SqlServer的數(shù)據(jù)卷映射。
2、拉取鏡像
docker pull mcr.microsoft.com/mssql/server:2019-latest3、啟動(dòng)
sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=badao123456' -p 1433:1433 -v /mssqlvol/data:/var/opt/mssql/data -v /mssqlvol/log:/var/opt/mssql/log -v /mssqlvol/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2019-latest命令詳解:
-e 'ACCEPT_EULA=Y'? 代表同意SQL SERVER使用條框,否則無法使用。
-e 'MSSQL_SA_PASSWORD=badao123456'? 設(shè)置SA用戶的密碼,要求密碼長(zhǎng)度必須至少為8個(gè)字符,并包含以下四組中的三組字符:大寫字母、小寫字母、以10為基數(shù)的數(shù)字和符號(hào)。
-p 1433:1433? 將宿主機(jī)1443與容器1443端口進(jìn)行映射
后面三個(gè)-v都是數(shù)據(jù)卷的映射
-d 后臺(tái)運(yùn)行
4、開放防火墻端口
firewall-cmd --zone=public --add-port=1433/tcp --permanent firewall-cmd --reload5、進(jìn)入容器
docker exec -it b998d4bee197 /bin/bash后面跟的是容器ID
然后到/opt/mssql-tools/bin下,使用sqlcmd連接并創(chuàng)建一個(gè)表以及查詢所有表
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P Badao123456通過語句
3> CREATE DATABASE BADAO; 4> SELECT Name from sys.Databases; 5> go效果:
輸入:
quit退出語句
輸入
exit退出容器
6、連接SqlServer
下載SSMS
https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15
下載之后安裝,安裝之后連接
進(jìn)入到上面映射的數(shù)據(jù)卷存放data數(shù)據(jù)的地方
可以看到數(shù)據(jù)庫(kù)映射也成功了
7、踩坑1
容器啟動(dòng)后,過一會(huì)就沒了。可以通過查看日志的方式排查
查看容器運(yùn)行日志,后面跟的是容器ID
docker logs -f b998d4bee197日志提示:
Setup FAILED copying system data file 'C:\templatedata\master.mdf' to '/var/...?? 5(Access is denied)
原因是創(chuàng)建的數(shù)據(jù)卷映射的目錄權(quán)限不夠
賦予權(quán)限
sudo chmod 777 -R? /mssqlvol然后運(yùn)行容器時(shí)使用sudo docker run,原來是直接使用docker run
8、踩坑2
再次運(yùn)行還是一會(huì)就停止了。再次查看日志
The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols
這是因?yàn)槊艽a太簡(jiǎn)單了,不符合要求
密碼長(zhǎng)度必須至少為8個(gè)字符,并包含以下四組中的三組字符:大寫字母、小寫字母、以10為基數(shù)的數(shù)字和符號(hào)
9、踩坑三
使用Navicat連接時(shí)提示:
遠(yuǎn)程主機(jī)強(qiáng)迫關(guān)閉了一個(gè)現(xiàn)有的連接,Client unable to establish connection(10054)
下載SSMS進(jìn)行連接,可能跟沒開代理有關(guān),所以使用Navicat連接不上。
10、踩坑四
日志中提示:This program requires a machine with at least 2000 megabytes of memory
這是因?yàn)檫@里使用的是虛擬機(jī),而SqlServer要求至少2G以上的內(nèi)存。
11、官方教程
可以參照官方教程進(jìn)行部署和配置
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-docker-container-configure?view=sql-server-ver15&pivots=cs1-bash
?
總結(jié)
以上是生活随笔為你收集整理的CentOS中使用Docker安装SqlServer以及遇到的那些坑的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinServer2012中怎样设置静态
- 下一篇: CentOS中使用Docker安装Jen