##一:前言 隨着不斷的對Docker容器的實踐和學習,愈來愈以爲容器的強大,把 SQL Server 數據庫服務放在docker容器中,比你本身在宿主服務器上面安裝配置一個SQL Server服務器是要方便和快捷不少的。 光說不練假把式,下面咱們就來進行一個實踐: ######在Linux下用Docker容器配置 SQL Server 服務,而後用SQL Server Management Studio工具鏈接數據庫html
##二:安裝運行容器 ###安裝先決條件 1,Docker 引擎 1.8+ 2,Linux內核的 3.18+ 3,「文件系統」 XFS 或 EXT4(其餘文件系統均不受支持,如 BTRFS) 4,處理器類型僅兼容 x64 ,磁盤大於6G。至少 2 GB 的 RAM。linux
###下載鏡像git
$ sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
###運行sqlserver docker容器sql
$ 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數據卷與數據卷容器 查看運行容器,下圖爲運行成功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系統)bash
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中文文檔