📚 开源资源分享——颜佐光的个人书架
✉️ 联系站长
书架 / 数据库 / 安装

Docker 部署 SQL SERVER 完全教程

2020-04-03 09:42 · 约 3,191 字 · 浏览 2,792 次 · 更新 2020-05-17 09:43安装

准备

  • 至少 2GB 内存
  • 至少 2GB 硬盘剩余空间

必备知识点

  • linux 基础操作
  • docker 基本概念

拉取镜像

  1. 从 Docker Hub 拉取 SQL SERVER 2017 Linux 镜像
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
  1. 运行 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

注意
1. 此处使用 Linux 系统 , Windows 系统运行容器稍有区别
2. 行末 \ 表示换行 , 输入命令时可以去掉

运行参数说明

参数 说明
-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

  • 必须设置路径映射或者创建数据卷

  1. 查看容器运行状态 docker container ls , 如出现图下 , 说明 SQL SERVER 启动成功
    img

  2. 如果 STATUS 显示 EXITED 请查看官网配置指南

修改 SA 密码

SA 账号是 SQL SERVER 默认管理员账号, 创建 SQL SERVER 容器后 , 可以通过 sqlcmd 工具修改密码

  • 使用 docker exec 执行 sqlcmd 命令

bash 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 命令行工具

  1. 进入容器

docker exec -it mssql bash

参数说明

  • -it : 此命令位 -i -t 两个参数缩写 , -i 表示以交互模式运行 , -t 表示进如容器命令行
  • mssql : 此参数表示要进入的容器名
  • bash : 此参数表示进入容器终端

如下图则说明成功进入容器
img

  1. 执行 sqlcmd 命令

bash /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '设置的sa密码'

  1. 如果连接成功会出现 >1

使用 SSMS 连接 SQL SERVER

  1. 打开 SSMS

  2. 选择 身份认证 为 SQL SERVER 身份验证
    img

  3. 设置 登录名 为 SA , 密码 为刚才设置的密码

  4. 连接成功

创建和查询数据

创建数据库

  1. 使用如下命令可以创建名为 TestDB 的数据库

sql CREATE DATABASE TestDB

  1. 下面命令查询所有的所有数据库名

sql SELECT Name from sys.Databases

  1. 上面两行命令输入后 , 实际没有立即执行 , 必须在下一行输入 GO , 将执行如上命令

mssql GO

插入数据

创建名为 Inventory 的表并插入两条数据

  1. 选择数据库

sql USE TestDB

  1. 建表

sql CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)

  1. 插入数据

sql INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);

  1. 执行命令

sql GO

查询数据

  1. 通过 sqlcmd 输入如下命令查询所有数据

sql SELECT * FROM Inventory

  1. 执行

mssql GO

退出 sqlcmd 命令行工具

  1. 使用 QUIT 命令退出 sqlcmd

mssql QUIT

← 返回《数据库》目录书架 →