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-latest

 

 

 

3、啟動

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 --reload

5、進入容器

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、官方教程

可以參照官方教程進行部署和配置

https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-docker-container-configure?view=sql-server-ver15&pivots=cs1-bash

 

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM