CentOS中使用Docker安装SqlServer以及遇到的那些坑
場景
CentOS7中Docker的安裝與配置:
https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701
首先按照上面在CentOS7中安裝Docker
注:
博客:
https://blog.csdn.net/badao_liumang_qizhi
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。
實現
1、在CenoOS上新建目錄mssqlvol,在此目錄下新建data、log、secrets三個目錄,用來做SqlServer的數據卷映射。
2、拉取鏡像
docker pull mcr.microsoft.com/mssql/server:2019-latest3、啟動
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'? 設置SA用戶的密碼,要求密碼長度必須至少為8個字符,并包含以下四組中的三組字符:大寫字母、小寫字母、以10為基數的數字和符號。
-p 1433:1433? 將宿主機1443與容器1443端口進行映射
后面三個-v都是數據卷的映射
-d 后臺運行
4、開放防火墻端口
firewall-cmd --zone=public --add-port=1433/tcp --permanent firewall-cmd --reload5、進入容器
docker exec -it b998d4bee197 /bin/bash后面跟的是容器ID
然后到/opt/mssql-tools/bin下,使用sqlcmd連接并創建一個表以及查詢所有表
/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
下載之后安裝,安裝之后連接
進入到上面映射的數據卷存放data數據的地方
可以看到數據庫映射也成功了
7、踩坑1
容器啟動后,過一會就沒了。可以通過查看日志的方式排查
查看容器運行日志,后面跟的是容器ID
docker logs -f b998d4bee197日志提示:
Setup FAILED copying system data file 'C:\templatedata\master.mdf' to '/var/...?? 5(Access is denied)
原因是創建的數據卷映射的目錄權限不夠
賦予權限
sudo chmod 777 -R? /mssqlvol然后運行容器時使用sudo docker run,原來是直接使用docker run
8、踩坑2
再次運行還是一會就停止了。再次查看日志
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
這是因為密碼太簡單了,不符合要求
密碼長度必須至少為8個字符,并包含以下四組中的三組字符:大寫字母、小寫字母、以10為基數的數字和符號
9、踩坑三
使用Navicat連接時提示:
遠程主機強迫關閉了一個現有的連接,Client unable to establish connection(10054)
下載SSMS進行連接,可能跟沒開代理有關,所以使用Navicat連接不上。
10、踩坑四
日志中提示:This program requires a machine with at least 2000 megabytes of memory
這是因為這里使用的是虛擬機,而SqlServer要求至少2G以上的內存。
11、官方教程
可以參照官方教程進行部署和配置
https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-docker-container-configure?view=sql-server-ver15&pivots=cs1-bash
?
總結
以上是生活随笔為你收集整理的CentOS中使用Docker安装SqlServer以及遇到的那些坑的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: WinServer2012中怎样设置静态
- 下一篇: Kettle-开源的ETL工具集-实现S