Docker安装SQL Server,并使用Navicat Premium连接SQL Server

Docker安装SQL Server,并使用Navicat Premium连接SQL Server

文章目录

  • Docker安装SQL Server,并使用Navicat Premium连接SQL Server
    • 1. Docker安装SQL Server
      • 1.1 拉取并运行容器镜像
      • 1.2 更改`SA`用户密码
      • 1.3 连接 SQL Server
      • 1.4 创建和查询数据
    • 2. Navicat Premium连接SQL Server
    • 3. 删除容器

官方文档

环境介绍:
Linux: Ubuntu 16.04.5 LTS
Docker version 18.06.1-ce, build e68fc7a
Navicat Premium 12.1

1. Docker安装SQL Server

1.1 拉取并运行容器镜像

  1. 从Microsoft Container Registry中拉取SQL Server 2017 Linux容器映像。

    sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
    
  2. 使用Docker运行容器镜像

    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
    

    注意:
    默认情况下,密码长度必须至少为8个字符,并且包含以下四个集合中的三个字符:大写字母,小写字母,数字和符号。

    下表提供了先前docker run示例中的参数说明:

    Parameter Description
    -e ‘ACCEPT_EULA=Y’ 将ACCEPT_EULA变量设置为任何值以确认你接受最终用户许可协议。
    -e ‘SA_PASSWORD=YourStrong!Passw0rd’ 设置强密码
    -p 1433:1433 使用容器中的TCP端口(第二个值)映射主机环境(第一个值)上的TCP端口。 在此示例中,SQL Server正在侦听容器中的TCP 1433,并且它将暴露给主机上的端口1433。
    –name mssql 为容器指定自定义名称,而不是随机生成的名称。 如果你运行多个容器,则无法重复使用此名称。
    mcr.microsoft.com/mssql/server:2017-latest SQL Server 2017 Linux容器映像。
  3. 使用docker ps命令查看Docker容器镜像

    sudo docker ps -a
    

    [外链图片转存失败(img-CDqceGRe-1566195706602)(/images/docker.png)]
    docker查看容器镜像

1.2 更改SA用户密码

  1. 如果需要更改SA用户的密码,可以使用以下命令

    sudo docker exec -it mssql /opt/mssql-tools/bin/sqlcmd \
       -S localhost -U SA -P "" \
       -Q 'ALTER LOGIN SA WITH PASSWORD="YourNewStrong!Passw0rd"'
    

1.3 连接 SQL Server

  1. 使用docker exec -it命令在正在运行的容器中启动交互式bash shell。 在以下示例中,mssql是在创建容器时由–name参数指定的名称。

    sudo docker exec -it mssql /bin/bash
    
  2. 进入容器后,使用sqlcmd进行本地连接。 默认情况下,Sqlcmd不在路径中,因此您必须指定完整路径。

    /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "YourNewStrong@Passw0rd"
    
  3. 如果登录成功,你应该进入sqlcmd命令提示符:1>

1.4 创建和查询数据

  1. 创建数据库TestDB

    CREATE DATABASE TestDB
    
  2. 上面的命令没有立即执行,必须在新的一行输入 GO,才能执行以上的命令

    GO
    
  3. 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
    
  4. Select data

    SELECT * FROM Inventory WHERE quantity > 152;
    
    GO
    
  5. 退出sqlcmd

    QUIT
    

2. Navicat Premium连接SQL Server

前提: 如果防火墙开启,需要添加端口

Docker安装SQL Server,并使用Navicat Premium连接SQL Server_第1张图片

3. 删除容器

  1. 如果要删除示例中使用的SQL Server容器,请运行以下命令:

    sudo docker stop mssql
    sudo docker rm mssql
    

你可能感兴趣的:(Docker,docker)