Docker容器安裝配置SQLServer服務(Linux)


##一:前言 隨着不斷的對Docker容器的實踐和學習,越來越覺得容器的強大,把 SQL Server 數據庫服務放在docker容器中,比你自己在宿主服務器上面安裝配置一個SQL Server服務器是要方便和快捷很多的。 光說不練假把式,下面我們就來進行一個實踐: ######在Linux下用Docker容器配置 SQL Server 服務,然后用SQL Server Management Studio工具連接數據庫

##二:安裝運行容器 ###安裝先決條件 1,Docker 引擎 1.8+ 2,Linux內核的 3.18+ 3,“文件系統” XFS 或 EXT4(其他文件系統均不受支持,如 BTRFS) 4,處理器類型僅兼容 x64 ,磁盤大於6G。至少 2 GB 的 RAM。

###下載鏡像

$ sudo docker pull mcr.microsoft.com/mssql/server:2017-latest

###運行sqlserver docker容器

$ sudo docker run -e 'ACCEPT_EULA=Y'  \
-e 'MSSQL_SA_PASSWORD=123456'  \
--name qtsqlserver \
-p 1433:1433  \
-v /var/opt/mssql:/var/opt/mssql \ 
-d mcr.microsoft.com/mssql/server:2017-latest

####命令說明: -e 'ACCEPT_EULA=Y': 配置變量,將 ACCEPT_EULA設置為任意值,以確認接受最終用戶許可協議。 SQL Server 映像的必需設置。 -e 'MSSQL_SA_PASSWORD':配置環境變量,此處變量作業為自定義SqlServer登錄密碼(用戶名為sa) --name :容器名 -p:配置宿主機與容器的端口映射(將主機環境中的 TCP 端口(第一個值)映射到容器中的 TCP 端口(第二個值)) -v:將主機目錄作為數據卷裝載,用於保存系統日志和數據庫mdf等文件(很重要,這個不配置,你容器刪除后所有數據庫數據也就都沒有了) -d:指定容器 后台運行,如果不指定此命令,當前終端關閉或者被占用程序則會退出 如果對Docker命令不了解可以參考我之前的文章或者文章后面的參考文檔 傳送門:Docker數據卷與數據卷容器 查看運行容器,下圖為運行成功

$ sudo docker ps -a

##三:用SQL Server Management Studio(SSMS)連接SQL Server ####下載安裝SQL Server Management Studio 傳送門:SSMS下載地址 ####連接服務器 連接地址格式:ip,端口號 端口號為上面啟動容器時配置的主機端口號 用戶名為:sa,密碼為上面啟動容器時配置的密碼

我這里連接的時候遇到一個小坑,無法正常連接,顯示的異常為:“指定的網絡名不可再用”,查了半天,沒有發現問題,最后發現修改容器運行命令,把宿主主機映射的1433端口改為映射3433端口然后就好了 可能我用的是雲服務器,我第一次操作時先運行容器后配置安全組規則的緣故吧

##四:開啟SqlServer代理 我們用SQL Server Management Studio數據庫管理工具連接我們數據庫后會發現代理功能是禁用的,這樣會使我們的數據庫作業無法使用 所以我們要開啟代理服務 ###進入SqlServer容器(Linux 上運行的SqlServer 基於Ubuntu的,所以進入容器后就相當進入了一個Ubuntu系統)

docker exec -it <容器名稱或ID> "bash"

###開啟代理(下面這個路徑不是自己自定義的路徑,不要與上面的路徑混淆)

/var/opt/mssql/bin/mssql-conf set sqlagent.enabled true

###退出容器

exit

###重啟容器

docker stop <容器名稱或ID>
docker start <容器名稱或ID>

代理開啟成功我我們再次用SQL Server Management Studio連接數據庫,可以看到,代理也已經成功啟動

##五:總結 經過上面的步驟,用Docker容器安裝配置 SQL Server 服務就已經大功告成了。不得不說Docker的強大,如果你熟練使用Docker,你會發現在服務器上面用Docker配置一個SQL Server 服務器一間非常方便快捷而且簡單的事情,我們只需要:下載鏡像,運行鏡像,開啟代理三步即可完成,完全不用像之前擔心服務的系統由於環境問題或者軟件版本等問題無法正常安裝SQL Server 服務器。

####參考文檔: 微軟官方文檔1 微軟官方文檔2 Docker官方文檔 Docker中文文檔


免責聲明!

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



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