網(wǎng)站首頁 編程語言 正文
一、前言
現(xiàn)在.NET Core已經(jīng)跨平臺了,支持Windows、Linux、Mac系統(tǒng),而我們也已經(jīng)在Linux上面使用了Docker。使用.NET開發(fā)的人使用最多的就是SQL Server數(shù)據(jù),以前是只能在Windows系統(tǒng)上使用,但是從SQL Server 2017開始支持運行在docker上了,也就是說現(xiàn)在SQL Server可以在Linux上運行了。
本篇文章將會介紹如何使用docker安裝SQL Server。這里使用的是Contos7,其他版本的Linux操作系統(tǒng)也一樣。使用的數(shù)據(jù)庫是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ù)也會丟失,所以我們在宿主機上面創(chuàng)建一個目錄,用來掛載容器內(nèi)的目錄。
mkdir /etc/sqlserver_data
如圖所示
3、運行容器
有了鏡像之后,我們就可以根據(jù)鏡像去運行容器了。
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
我們對上面的命令做如下的解釋
- -e "SA_PASSWORD=P@ssw0rd,":這里是給SA用戶設(shè)置登錄密碼,這里設(shè)置的密碼是P@ssw0rd,。
- -v /etc/sqlserver_data:/var/opt/mssql:表示/etc/sqlserver_data目錄掛載到容器的/var/opt/mssql目錄,這個目錄是用來存儲數(shù)據(jù)庫文件的,所以最好掛載到容器外部,避免因為不小心刪除容器而丟失數(shù)據(jù)。
- -p 1433:1433:表示宿主機的1433端口映射到容器的1433。
如圖所示
4、使用命令進入SQL Server
容器運行以后,我們使用exec命令進入SQL Server內(nèi)部
docker exec -it sqlserver2017 /bin/bash
如圖所示
這樣我們就進入了容器內(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)會顯示 sqlcmd 命令提示符:1>
。
如圖所示
執(zhí)行下面的命令,查詢數(shù)據(jù)
select name from sys.Databases
如圖所示
可以查詢出結(jié)果。
我們通過命令的方式創(chuàng)建數(shù)據(jù)庫,然后創(chuàng)建表,并插入一些數(shù)據(jù)。
5、使用SSMS登錄SQL Server數(shù)據(jù)庫
上面我們是直接使用命令的方式操作數(shù)據(jù)庫,我們還可以使用Microsoft SQL Server Management Studio(SSMS)進行登錄Docker里面的數(shù)據(jù)庫,然后通過圖形化界面的方式操作數(shù)據(jù)庫
使用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ù)
我們在Docker里面查看,看看數(shù)據(jù)有沒有變化
我們看到docker里面的數(shù)據(jù)也發(fā)生了變化。 使用SSMS操作數(shù)據(jù)庫就跟在docker里面使用命令直接操作數(shù)據(jù)庫一樣。
三、總結(jié)
上面簡單介紹了一下如何在Linux系統(tǒng)上通過Docker安裝SQL Server數(shù)據(jù)庫,安裝好了以后,我們就可以使用SSMS操作Docker里面的數(shù)據(jù)庫了,就跟在Windows上面安裝的SQL Server操作一樣了。更多內(nèi)容可以參考微軟官網(wǎng)文檔:
https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-2017&pivots=cs1-bash
原文鏈接:https://www.cnblogs.com/dotnet261010/p/12600090.html
相關(guān)推薦
- 2022-04-07 C++?string與int的相互轉(zhuǎn)換(使用C++11)_C 語言
- 2022-08-12 解決IE9下JQuery發(fā)送ajax請求失效的方法_jquery
- 2022-12-05 關(guān)于adfuller函數(shù)返回值的參數(shù)說明與記錄_python
- 2022-07-13 File類的基本運用、查找、刪除
- 2023-02-01 C語言結(jié)構(gòu)體嵌套與對齊超詳細講解_C 語言
- 2022-09-08 go語言中函數(shù)與方法介紹_Golang
- 2022-06-02 C/C++編程中const的使用詳解_C 語言
- 2022-06-15 Go?interface?接口的最佳實踐經(jīng)驗分享_Golang
- 最近更新
-
- window11 系統(tǒng)安裝 yarn
- 超詳細win安裝深度學(xué)習(xí)環(huán)境2025年最新版(
- Linux 中運行的top命令 怎么退出?
- MySQL 中decimal 的用法? 存儲小
- get 、set 、toString 方法的使
- @Resource和 @Autowired注解
- Java基礎(chǔ)操作-- 運算符,流程控制 Flo
- 1. Int 和Integer 的區(qū)別,Jav
- spring @retryable不生效的一種
- Spring Security之認證信息的處理
- Spring Security之認證過濾器
- Spring Security概述快速入門
- Spring Security之配置體系
- 【SpringBoot】SpringCache
- Spring Security之基于方法配置權(quán)
- redisson分布式鎖中waittime的設(shè)
- maven:解決release錯誤:Artif
- restTemplate使用總結(jié)
- Spring Security之安全異常處理
- MybatisPlus優(yōu)雅實現(xiàn)加密?
- Spring ioc容器與Bean的生命周期。
- 【探索SpringCloud】服務(wù)發(fā)現(xiàn)-Nac
- Spring Security之基于HttpR
- Redis 底層數(shù)據(jù)結(jié)構(gòu)-簡單動態(tài)字符串(SD
- arthas操作spring被代理目標對象命令
- Spring中的單例模式應(yīng)用詳解
- 聊聊消息隊列,發(fā)送消息的4種方式
- bootspring第三方資源配置管理
- GIT同步修改后的遠程分支