Docker 部署 SQL SERVER 完全教程

/ 数据库docker / 没有评论 / 1966浏览

准备

必备知识点

拉取镜像

  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/mssqly将宿主机 /data 映射到容器 /var/opt/mssql , 方便备份数据

生产环境配置建议

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

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

修改 SA 密码

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

连接 SQL SERVER

SQL SERVER 容器自带 sqlcmd 命令行工具

  1. 进入容器

    docker exec -it mssql bash

    参数说明

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

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

  2. 执行 sqlcmd 命令

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '设置的sa密码'
    
  3. 如果连接成功会出现 >1

使用 SSMS 连接 SQL SERVER

  1. 打开 SSMS

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

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

  4. 连接成功

创建和查询数据

创建数据库

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

    CREATE DATABASE TestDB
    
  2. 下面命令查询所有的所有数据库名

    SELECT Name from sys.Databases
    
  3. 上面两行命令输入后 , 实际没有立即执行 , 必须在下一行输入 GO , 将执行如上命令

    GO
    

插入数据

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

  1. 选择数据库

    USE TestDB
    
  2. 建表

    CREATE TABLE Inventory (id INT, name NVARCHAR(50), quantity INT)
    
  3. 插入数据

    INSERT INTO Inventory VALUES (1, 'banana', 150); INSERT INTO Inventory VALUES (2, 'orange', 154);
    
  4. 执行命令

    GO
    

查询数据

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

    SELECT * FROM Inventory
    
  2. 执行

    GO
    

退出 sqlcmd 命令行工具

  1. 使用 QUIT 命令退出 sqlcmd

    QUIT