准备
- 至少 2GB 内存
- 至少 2GB 硬盘剩余空间
必备知识点
- linux 基础操作
- docker 基本概念
拉取镜像
- 从 Docker Hub 拉取 SQL SERVER 2017 Linux 镜像
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
- 运行 SQL SERVER 容器
sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=此处设置sa账号的密码' \
-p 1433:1433 --name mssql -v /data:/var/opt/mssql \
-d mcr.microsoft.com/mssql/server:2017-latest
注意
- 此处使用 Linux 系统 , Windows 系统运行容器稍有区别
- 行末
\
表示换行 , 输入命令时可以去掉
运行参数说明
参数 | 说明 |
---|---|
-e 'ACCEPT_EULA=Y' | 设置此参数说明同意 SQL SERVER 使用条款 , 否则无法使用 |
-e 'SA_PASSWORD=密码' | 此处设置 SQL SERVER 数据库 SA 账号的密码 |
-p 1433:1433 | 将宿主机 1433 端口映射到容器的 1433 端口 |
--name mssql | 设置容器名为 mssql |
-v /data:/var/opt/mssql | y将宿主机 /data 映射到容器 /var/opt/mssql , 方便备份数据 |
生产环境配置建议
-
服务器重启自动启动容器
--restart=always
-
必须设置路径映射或者创建数据卷
-
查看容器运行状态
docker container ls
, 如出现图下 , 说明 SQL SERVER 启动成功 -
如果 STATUS 显示
EXITED
请查看官网配置指南
修改 SA 密码
SA 账号是 SQL SERVER 默认管理员账号, 创建 SQL SERVER 容器后 , 可以通过 sqlcmd 工具修改密码
-
使用
docker exec
执行 sqlcmd 命令sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \ -S localhost -U SA -P '旧密码' \ -Q 'ALTER LOGIN SA WITH PASSWORD="新密码"'
连接 SQL SERVER
SQL SERVER 容器自带 sqlcmd 命令行工具
-
进入容器
docker exec -it mssql bash
参数说明
- -it : 此命令位 -i -t 两个参数缩写 , -i 表示以交互模式运行 , -t 表示进如容器命令行
- mssql : 此参数表示要进入的容器名
- bash : 此参数表示进入容器终端
如下图则说明成功进入容器
-
执行 sqlcmd 命令
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '设置的sa密码'
-
如果连接成功会出现
>1
使用 SSMS 连接 SQL SERVER
-
打开 SSMS
-
选择 身份认证 为 SQL SERVER 身份验证
-
设置 登录名 为 SA , 密码 为刚才设置的密码
-
连接成功
创建和查询数据
创建数据库
-
使用如下命令可以创建名为 TestDB 的数据库
CREATE DATABASE TestDB
-
下面命令查询所有的所有数据库名
SELECT Name from sys.Databases
-
上面两行命令输入后 , 实际没有立即执行 , 必须在下一行输入 GO , 将执行如上命令
GO
插入数据
创建名为 Inventory
的表并插入两条数据
-
选择数据库
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
查询数据
-
通过 sqlcmd 输入如下命令查询所有数据
SELECT * FROM Inventory
-
执行
GO
退出 sqlcmd 命令行工具
-
使用
QUIT
命令退出 sqlcmdQUIT
本文由 创作,采用 知识共享署名4.0 国际许可协议进行许可。本站文章除注明转载/出处外,均为本站原创或翻译,转载前请务必署名。最后编辑时间为: 2020/05/17 01:43