Linux系統(tǒng)通過(guò)Docker安裝SQL?Server數(shù)據(jù)庫(kù)
一、前言
現(xiàn)在.NET Core已經(jīng)跨平臺(tái)了,支持Windows、Linux、Mac系統(tǒng),而我們也已經(jīng)在Linux上面使用了Docker。使用.NET開(kāi)發(fā)的人使用最多的就是SQL Server數(shù)據(jù),以前是只能在Windows系統(tǒng)上使用,但是從SQL Server 2017開(kāi)始支持運(yùn)行在docker上了,也就是說(shuō)現(xiàn)在SQL Server可以在Linux上運(yùn)行了。
本篇文章將會(huì)介紹如何使用docker安裝SQL Server。這里使用的是Contos7,其他版本的Linux操作系統(tǒng)也一樣。使用的數(shù)據(jù)庫(kù)是SQL Server 2017。
二、安裝SQL Server
1、拉取SQL Server鏡像
要在Docker中安裝SQL Server,首先要有SQL Server的鏡像,所以第一步是拉取SQL Server鏡像
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
如圖所示

2、創(chuàng)建目錄
我們知道,Docker容器一旦刪除了,那么容器里面的數(shù)據(jù)也會(huì)丟失,所以我們?cè)谒拗鳈C(jī)上面創(chuàng)建一個(gè)目錄,用來(lái)掛載容器內(nèi)的目錄。
mkdir /etc/sqlserver_data
如圖所示

3、運(yùn)行容器
有了鏡像之后,我們就可以根據(jù)鏡像去運(yùn)行容器了。
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=P@ssw0rd," -p 1433:1433 --name sqlserver2017 -v /etc/sqlserver_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
我們對(duì)上面的命令做如下的解釋
- -e "SA_PASSWORD=P@ssw0rd,":這里是給SA用戶設(shè)置登錄密碼,這里設(shè)置的密碼是P@ssw0rd,。
- -v /etc/sqlserver_data:/var/opt/mssql:表示/etc/sqlserver_data目錄掛載到容器的/var/opt/mssql目錄,這個(gè)目錄是用來(lái)存儲(chǔ)數(shù)據(jù)庫(kù)文件的,所以最好掛載到容器外部,避免因?yàn)椴恍⌒膭h除容器而丟失數(shù)據(jù)。
- -p 1433:1433:表示宿主機(jī)的1433端口映射到容器的1433。
如圖所示

4、使用命令進(jìn)入SQL Server
容器運(yùn)行以后,我們使用exec命令進(jìn)入SQL Server內(nèi)部
docker exec -it sqlserver2017 /bin/bash
如圖所示

這樣我們就進(jìn)入了容器內(nèi)部,然后執(zhí)行下面的命令:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
在示例中的命令如下:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P P@ssw0rd,
如果成功,應(yīng)會(huì)顯示 sqlcmd 命令提示符:1>。
如圖所示

執(zhí)行下面的命令,查詢數(shù)據(jù)
select name from sys.Databases
如圖所示

可以查詢出結(jié)果。
我們通過(guò)命令的方式創(chuàng)建數(shù)據(jù)庫(kù),然后創(chuàng)建表,并插入一些數(shù)據(jù)。

5、使用SSMS登錄SQL Server數(shù)據(jù)庫(kù)
上面我們是直接使用命令的方式操作數(shù)據(jù)庫(kù),我們還可以使用Microsoft SQL Server Management Studio(SSMS)進(jìn)行登錄Docker里面的數(shù)據(jù)庫(kù),然后通過(guò)圖形化界面的方式操作數(shù)據(jù)庫(kù)

使用SSMS連接Linux上的SQL Server參考微軟官方文檔:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-manage-ssms?view=sql-server-2017
登錄成功以后我們查詢數(shù)據(jù),如圖所示

我們往student表里面插入一條數(shù)據(jù)

我們?cè)贒ocker里面查看,看看數(shù)據(jù)有沒(méi)有變化

我們看到docker里面的數(shù)據(jù)也發(fā)生了變化。 使用SSMS操作數(shù)據(jù)庫(kù)就跟在docker里面使用命令直接操作數(shù)據(jù)庫(kù)一樣。
三、總結(jié)
上面簡(jiǎn)單介紹了一下如何在Linux系統(tǒng)上通過(guò)Docker安裝SQL Server數(shù)據(jù)庫(kù),安裝好了以后,我們就可以使用SSMS操作Docker里面的數(shù)據(jù)庫(kù)了,就跟在Windows上面安裝的SQL Server操作一樣了。更多內(nèi)容可以參考微軟官網(wǎng)文檔:
到此這篇關(guān)于Linux系統(tǒng)通過(guò)Docker安裝SQL Server數(shù)據(jù)庫(kù)的文章就介紹到這了。希望對(duì)大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
docker容器詳細(xì)講解如何精簡(jiǎn)鏡像減小體積
這篇文章主要介紹了docker容器如何精簡(jiǎn)鏡像減小體積,一般我們打造鏡像會(huì)有幾百M(fèi)B,學(xué)完本文后我們將學(xué)會(huì)縮小鏡像體積,從而達(dá)到做出來(lái)的鏡像只有幾十MB,一起來(lái)看看吧2021-08-08
Docker快速部署主流腳本語(yǔ)言JavaScript的全過(guò)程
JavaScript是目前所有主流瀏覽器上唯一支持的腳本語(yǔ)言,這也是早期JavaScript的唯一用途,下面這篇文章主要給大家介紹了關(guān)于Docker快速部署主流腳本語(yǔ)言JavaScript的相關(guān)資料,需要的朋友可以參考下2023-02-02
Centos中使用Docker安裝rabbitmq的問(wèn)題記錄
這篇文章主要介紹了Centos中使用Docker安裝rabbitmq的問(wèn)題記錄,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2024-05-05
詳解Centos7 下建立 Docker 橋接網(wǎng)絡(luò)
本篇文章主要介紹了詳解Centos7 下建立 Docker 橋接網(wǎng)絡(luò),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧2017-01-01
Windows10系統(tǒng)下docker安裝指南以及踩坑解決
這篇文章主要給大家介紹了關(guān)于Windows10系統(tǒng)下docker安裝指南以及踩坑解決的相關(guān)資料,相信大家都知道Docker有很多種安裝的選擇,其中支持最好的是Ubuntu系統(tǒng),而且docker如果想在windows上運(yùn)行必須借助docker-machine,需要的朋友可以參考下2023-08-08
docker搭建CMS點(diǎn)播系統(tǒng)帶播放器功能
熟悉docker的童鞋都知道,安裝是非常的便利的,也可以在線體驗(yàn)的,今天通過(guò)本文給大家介紹docker搭建CMS點(diǎn)播系統(tǒng)帶播放器功能,感興趣的朋友跟隨小編一起看看吧2021-05-05
docker打包Python環(huán)境的過(guò)程詳解
這篇文章主要介紹了docker打包Python環(huán)境過(guò)程,準(zhǔn)備工作需要大家復(fù)制python程序啟動(dòng)程序,具體操作流程跟隨小編一起看看吧2021-08-08
docker中的volume和bind?mount區(qū)別講解
這篇文章主要介紹了docker的volume和bind?mount區(qū)別,介紹了volume?相對(duì)于bind?mount的優(yōu)點(diǎn)及volume操作,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),需要的朋友可以參考下2022-08-08
Docker 集成KingBase的詳細(xì)過(guò)程
這篇文章主要介紹了Docker 集成KingBase的詳細(xì)過(guò)程,本文給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友參考下吧2025-04-04
如何在Docker環(huán)境下為Nginx配置HTTPS
如何在Docker環(huán)境下為Nginx配置HTTPS,使用自簽名證書(shū)實(shí)現(xiàn)加密通信,本文給大家介紹的非常詳細(xì),感興趣的朋友跟隨小編一起看看吧2024-11-11

