Docker安裝SQL Server锦积,并使用Navicat Premium連接SQL Server
環(huán)境介紹:
Linux: Ubuntu 16.04.5 LTS
Docker version 18.06.1-ce, build e68fc7a
Navicat Premium 12.1
1. Docker安裝SQL Server
1.1 拉取并運(yùn)行容器鏡像
-
從Microsoft Container Registry中拉取SQL Server 2017 Linux容器映像响牛。
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
-
使用Docker運(yùn)行容器鏡像
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=YourStrong@Passw0rd" \ -p 1433:1433 --name mssql \ -d mcr.microsoft.com/mssql/server:2017-latest
注意:
默認(rèn)情況下,密碼長(zhǎng)度必須至少為8個(gè)字符查蓉,并且包含以下四個(gè)集合中的三個(gè)字符:大寫字母乌询,小寫字母,數(shù)字和符號(hào)豌研。下表提供了先前docker run示例中的參數(shù)說明:
Parameter Description -e 'ACCEPT_EULA=Y' 將ACCEPT_EULA變量設(shè)置為任何值以確認(rèn)你接受最終用戶許可協(xié)議妹田。 -e 'SA_PASSWORD=YourStrong!Passw0rd' 設(shè)置強(qiáng)密碼 -p 1433:1433 使用容器中的TCP端口(第二個(gè)值)映射主機(jī)環(huán)境(第一個(gè)值)上的TCP端口。 在此示例中鹃共,SQL Server正在偵聽容器中的TCP 1433鬼佣,并且它將暴露給主機(jī)上的端口1433。 --name mssql 為容器指定自定義名稱及汉,而不是隨機(jī)生成的名稱沮趣。 如果你運(yùn)行多個(gè)容器,則無法重復(fù)使用此名稱坷随。 mcr.microsoft.com/mssql/server:2017-latest SQL Server 2017 Linux容器映像房铭。 -
使用
docker ps
命令查看Docker容器鏡像sudo docker ps -a
docker查看容器鏡像
1.2 更改SA
用戶密碼
sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA -P "<YourStrong!Passw0rd>" \
-Q 'ALTER LOGIN SA WITH PASSWORD="YourNewStrong!Passw0rd"'
1.3 連接 SQL Server
-
使用docker exec -it命令在正在運(yùn)行的容器中啟動(dòng)交互式bash shell。 在以下示例中温眉,mssql是在創(chuàng)建容器時(shí)由--name參數(shù)指定的名稱缸匪。
sudo docker exec -it mssql /bin/bash
-
進(jìn)入容器后,使用sqlcmd進(jìn)行本地連接类溢。 默認(rèn)情況下凌蔬,Sqlcmd不在路徑中露懒,因此您必須指定完整路徑。
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "YourNewStrong@Passw0rd"
如果登錄成功砂心,你應(yīng)該進(jìn)入sqlcmd命令提示符:
1>
1.4 創(chuàng)建和查詢數(shù)據(jù)
-
創(chuàng)建數(shù)據(jù)庫(kù)
TestDB
CREATE DATABASE TestDB
-
上面的命令沒有立即執(zhí)行懈词,必須在新的一行輸入
GO
,才能執(zhí)行以上的命令GO
-
Insert data
USE TestDB
CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
GO
-
Select data
SELECT * FROM Inventory WHERE quantity > 152;
GO
-
退出sqlcmd
QUIT
2. Navicat Premium連接SQL Server
前提: 如果防火墻開啟辩诞,需要添加端口
Navicat Premium 連接SQL Server
3. 刪除容器
-
如果要?jiǎng)h除示例中使用的SQL Server容器坎弯,請(qǐng)運(yùn)行以下命令:
sudo docker stop mssql sudo docker rm mssql