Docker安装SqlServer

Docker安装SqlServer

Docker:为 Linux 上的 SQL Server 安装容器 - SQL Server | Microsoft Learn

1、从 Microsoft 容器注册表中请求 SQL Server 2022 (16.x) Linux 容器映像。

  • Bash
sudo docker pull mcr.microsoft.com/mssql/server:2022-latest
  • PowerShell
docker pull mcr.microsoft.com/mssql/server:2022-latest
  • Windows 命令提示符
docker pull mcr.microsoft.com/mssql/server:2022-latest

Docker_SqlServer_1

2、要使用 Docker 运行 Linux 容器映像

  • Bash
sudo docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" \
   -p 1433:1433 --name sql1 --hostname sql1 \
   -d \
   mcr.microsoft.com/mssql/server:2022-latest

备注

如果使用 PowerShell Core,请将双引号替换为单引号。

  • PowerShell
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" `
   -p 1433:1433 --name sql1 --hostname sql1 `
   -d `
   mcr.microsoft.com/mssql/server:2022-latest
  • Windows 命令提示符
docker run -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" -p 1433:1433 --name Docker_SqlServer --hostname Docker_SqlServer -d mcr.microsoft.com/mssql/server:2022-latest

密码应符合 SQL Server 默认密码策略,否则容器无法设置 SQL Server,将停止工作。 默认情况下,密码必须为至少八个字符且包含以下四种字符中的三种:大写字母、小写字母、十进制数字、符号。 可使用 docker logs 命令检查错误日志。

默认情况下,本快速入门会创建一个使用 SQL Server 开发人员版的容器。 在容器中运行生产版本的过程略有不同。 有关详细信息,请参阅运行生产容器映像

下表对前一个 docker run 示例中的参数进行了说明:

参数说明
-e “ACCEPT_EULA=Y”ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。
-e “MSSQL_SA_PASSWORD=YourStrong@Passw0rd指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。
-e “MSSQL_COLLATION=<*SQL_Server_collation*>”指定自定义 SQL Server 排序规则,而不使用默认值 SQL_Latin1_General_CP1_CI_AS
-p 1433:1433将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。 在此示例中,SQL Server 侦听容器中的 TCP 1433,此容器端口随后会对主机上的 TCP 端口 1433 公开。
–name sql1为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。
–hostname sql1用于显式设置容器主机名。 如果未指定主机名,则主机名默认为容器 ID,这是随机生成的系统 GUID。
-d在后台运行容器(守护程序)。
mcr.microsoft.com/mssql/server:2022-latestSQL Server Linux 容器映像。

Docker_SqlServer_2

Docker_SqlServer_3

3、修改密码

  • 测试环境,目前用不到。

4、创建ODBC 连接SQL Server数据库

  • 连接到 SQL Server

    • sudo docker exec -it Docker_SqlServer "bash"

    • sudo docker exec -it Docker_SqlServer "bash"

    • /opt/mssql-tools/bin/sqlcmd -S localhost -U SA

    • 完整命令行:

      duxiao@duxiaopc:~$ sudo docker exec -it Docker_SqlServer "bash"
      [sudo] password for duxiao:
      mssql@Docker_SqlServer:/$ ls
      bin  boot  dev  etc  home  lib  lib32  lib64  libx32  media  mnt  opt  proc  root  run  sbin  srv  sys  tmp  usr  var
      mssql@Docker_SqlServer:/$   /opt/mssql-tools/bin/sqlcmd -S localhost -U SA
      Password:
      1>
      
  • 创建测试数据库

    • 创建数据库:CREATE DATABASE DuxiaoDB;

    • 测试查询:SELECT Name from sys.databases;

    • 前两个命令没有立即运行。 在新行中键入 GO 以运行前面的命令:

      • GO
    • 完整命令:

      1> CREATE DATABASE DuxiaoDB;
      2> SELECT Name from sys.databases
      3> go
      Name
      --------------------------------------------------------------------------------------------------------------------------------
      master
      tempdb
      model
      msdb
      DuxiaoDB
      
      (5 rows affected)
      1>
      
  • 创建ODBC数据库

Docker_SqlServer_4
Docker_SqlServer_5
Docker_SqlServer_6
Docker_SqlServer_7
Docker_SqlServer_8
Docker_SqlServer_9
Docker_SqlServer_10

  • 使用Navicat 16连接数据库

Docker_SqlServer_11
Docker_SqlServer_12

5、删除容器及镜像

好不容易搭建的,我不删除。

至此测试版Docker SqlServer 搭建完成。
  • 52
    点赞
  • 49
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值