SQL Server On Docker 安装详解

本文涉及的产品
云数据库 RDS SQL Server,基础系列 2核4GB
简介: SQL Server On Docker 安装详解

先决条件


任何受支持的 Linux 发行版上的 Docker 引擎 1.8 及更高版本。


支持的Linux平台如下:

  • Red Hat Enterprise Linux 8.0 - 8.6 Server
  • SUSE Enterprise Linux Server v15 (SP1 - SP3)
  • Ubuntu 20.04 LTS
  • Linux 上的 Docker 引擎 1.8+


Docker部署


1. Docker镜像列表

2022-latest
docker pull mcr.microsoft.com/mssql/server:2022-latest
2019-latest
docker pull mcr.microsoft.com/mssql/server:2019-latest
2017-latest
docker pull mcr.microsoft.com/mssql/server:2017-latest
2017-CU31-ubuntu-18.04docker pull mcr.microsoft.com/mssql/server:2017-CU31-ubuntu-18.042019-CU18-ubuntu-20.04docker pull mcr.microsoft.com/mssql/server:2019-CU18-ubuntu-20.04


2. 安装Docker

yum install docker


3. 下载镜像

docker pull mcr.microsoft.com/mssql/server:2017-latest


4. 启动Docker

docker run --name sql_server --hostname h1 -e "ACCEPT_EULA=Y" -e "MSSQL_SA_PASSWORD=<YourStrong@Passw0rd>" -e "MSSQL_PID=Developer" -p 3433:1433 -d mcr.microsoft.com/mssql/server:2017-latest


5. 参数说明


  • ACCEPT_EULA :将 ACCEPT_EULA 变量设置为任意值,以确认接受最终用户许可协议。 SQL Server 映像的必需设置。


  • MSSQL_SA_PASSWORD:指定至少包含 8 个字符且符合 SQL Server 密码要求的强密码。 SQL Server 映像的必需设置。


  • MSSQL_COLLATION:指定自定义 SQL Server 排序规则,默认值 SQL_Latin1_General_CP1_CI_AS。


  • 3433:1433:将主机环境中的 TCP 端口(第一个值)映射到容器中的 TCP 端口(第二个值)。 在此示例中,SQL Server 侦听容器中的 TCP 1433,此容器端口随后会对主机上的 TCP 端口 3433 公开。


  • name sql_server:为容器指定一个自定义名称,而不是使用随机生成的名称。 如果运行多个容器,则无法重复使用相同的名称。


  • hostname h1:用于显式设置容器主机名。 如果未指定主机名,则主机名默认为容器 ID,这是随机生成的系统 GUID。


  • -d:在后台运行容器(守护程序)。


  • mcr.microsoft.com/mssql/server:2017-latest:SQL Server Linux 容器映像。


6. 查看docker 运行状态

# 列出所有运行的 docker 容器
[root@*****~]# docker ps 
Emulate Docker CLI using podman. Create/etc/containers/nodocker to quiet msg.
CONTAINER ID  IMAGE                                       COMMAND               CREATED        STATUS            PORTS                   NAMES
3e41f4c2b485  mcr.microsoft.com/mssql/server:2017-latest  /opt/mssql/bin/sq...  8 seconds ago  Up 8 seconds ago  0.0.0.0:3433->1433/tcp  sql_server
# 进入docker 查看数据库文件
[root@****~]# docker exec -it 3e41f4c2b485 sh
# ls -al /var/opt/mssql/data
total 69568drwxr-xr-x 2 root root      192 Nov  708:45 .
drwxr-xr-x 6 root root       59 Nov  708:37 ..
-rw-r----- 1 root root  8388608 Nov  7 08:45 db01.mdf-rw-r----- 1 root root  8388608 Nov  7 08:45 db01_log.ldf-rw-r----- 1 root root  4194304 Nov  7 08:37 master.mdf-rw-r----- 1 root root  2097152 Nov  7 08:45 mastlog.ldf-rw-r----- 1 root root  8388608 Nov  7 08:45 model.mdf-rw-r----- 1 root root  8388608 Nov  7 08:45 modellog.ldf-rw-r----- 1 root root 14090240 Nov  7 08:37 msdbdata.mdf-rw-r----- 1 root root   524288 Nov  7 08:37 msdblog.ldf-rw-r----- 1 root root  8388608 Nov  7 08:37 tempdb.mdf-rw-r----- 1 root root  8388608 Nov  7 08:44 templog.ldf


安装 SQL Server 命令行工具


1. 下载 Red Hat 存储库配置文件。

sudo curl -o /etc/yum.repos.d/msprod.repo https://packages.microsoft.com/config/rhel/8/prod.repo


2. 如果安装了早期版本的 mssql-tools,请删除所有旧的 unixODBC 包。

sudo yum remove unixODBC-utf16 unixODBC-utf16-devel


3. 运行以下命令,以使用 unixODBC 开发人员包安装 mssql-tools

sudo yum install -y mssql-tools unixODBC-devel

4. 为方便起见,将 /opt/mssql-tools/bin/ 添加到 PATH环境变量,以便可从 bash shell 访问 sqlcmd 或 bcp。

echo 'export PATH="$PATH:/opt/mssql-tools/bin"'>>~/.bash_profile

对于非交互式会话,请使用以下命令在~/.bashrc文件中修改PATH环境变量:

echo 'export PATH="$PATH:/opt/mssql-tools/bin"'>>~/.bashrcsource ~/.bashrc


5. 查看sqlcmd 命令帮助文档

sqlcmd -?


通过SQLCMD 工具连接


  1. 使用 SQL Server 名称 (-S)、用户名 (-U) 和密码 (-P) 的相应参数运行 sqlcmd。 在本教程中,用户进行本地连接,因此服务器名称为 localhost。 用户名为 sa,密码是在安装过程中为 SA 帐户提供的密码。
sqlcmd -S localhost -U sa -P '<YourStrong@Passw0rd>'


  1. 如果成功,应会显示 sqlcmd 命令提示符:1>


1. 命令连接示例

[root@****~]# sqlcmd -S localhost,3433-U sa -P <YourStrong@Passw0rd>1>select @@version;2>select @@SERVERNAME;3> go
------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------Microsoft SQL Server 2017(RTM-CU31)(KB5016884)-14.0.3456.2(X64) Sep  2202211:01:50 Copyright (C)2017 Microsoft Corporation
 Developer Edition (64-bit)on Linux (Ubuntu 18.04.6 LTS)(1 rows affected)--------------------------------------------------------------------------------------------------------------------------------h1                                                                                                                              
(1 rows affected)


2. 新建数据库


以下步骤创建一个名为TestDB的新数据库。

  1. 在 sqlcmd 命令提示符中,粘贴以下 Transact-SQL 命令以创建测试数据库:
CREATE DATABASE TestDB;

  1. 在下一行中,编写一个查询以返回服务器上所有数据库的名称:
SELECT Name from sys.databases;GO


3. 插入数据


接下来创建一个新表dbo.Inventory,然后插入两个新行。


  1. 在 sqlcmd 命令提示符中,将上下文切换到新的 TestDB 数据库:
USE TestDB;


  1. 创建名为 dbo.Inventory 的新表:
CREATETABLE dbo.Inventory(    id INT, name NVARCHAR(50),    quantity INT);


  1. 将数据插入新表:
INSERTINTO dbo.InventoryVALUES(1,'banana',150);INSERTINTO dbo.InventoryVALUES(2,'orange',154);


  1. 要执行上述命令的类型 GO
GO

 

4. 查询数据


现在,运行查询以从dbo.Inventory表返回数据。


  1. 通过 sqlcmd 命令提示符输入查询,以返回 dbo.Inventory 表中数量大于 152 的行:
SELECT*FROM dbo.InventoryWHERE quantity >152;


  1. 执行此命令:
GO


5. 退出 sqlcmd 命令提示符


要结束 sqlcmd 会话,请键入 QUIT


安全组




通过SSMS连接



参考文档


SQL Server Docker 镜像

SQL Server On Docker


相关文章
|
5月前
|
存储 安全 C++
Odoo 安装方式选择:源码安装 vs Docker
Odoo部署常采用源码编译或Docker容器化,但分别面临依赖复杂、版本风险和服务化难题,以及镜像臃肿和扩展受限的问题。Websoft9提出混合方案,融合两者优势:通过智能环境适配、三阶段部署流程(环境预检、混合模式选择、持久化配置)及声明式YAML配置,实现高效、灵活的双模运行时。此方案显著降低依赖冲突解决时间(从83分钟至0),生产环境构建耗时缩短至8分钟,并达100% CVE漏洞修复率,适合ERP定制开发与规模化部署的企业需求。
|
3月前
|
存储 NoSQL MongoDB
Docker中安装MongoDB并配置数据、日志、配置文件持久化。
现在,你有了一个运行在Docker中的MongoDB,它拥有自己的小空间,对高楼大厦的崩塌视而不见(会话丢失和数据不持久化的问题)。这个MongoDB的数据、日志、配置文件都会妥妥地保存在你为它精心准备的地方,天旋地转,它也不会失去一丁点儿宝贵的记忆(即使在容器重启后)。
367 4
|
3月前
|
Linux iOS开发 Docker
MyEMS开源系统安装之Linux/macOS上的DOcker
本指南详细介绍了如何在Linux/macOS上使用Docker部署MyEMS系统。主要内容包括:前置条件(如安装Docker、npm和MySQL),以及分步骤部署各个组件(如myems-api、myems-admin、myems-modbus-tcp等)。每个步骤涵盖源代码复制、环境配置、镜像构建、容器运行及日志管理等操作,并提供了多平台构建的支持。最后,指南还说明了默认端口和登录凭据,帮助用户快速启动并访问MyEMS的管理界面和Web界面。
119 1
|
4月前
|
关系型数据库 MySQL 数据库
Docker 安装常用软件相关命令
本文介绍了在CentOS 7.9系统上安装Docker的详细步骤,包括添加阿里云镜像源、安装Docker及相关组件、启动服务以及配置镜像加速。同时,还展示了如何通过Docker安装MySQL 5.7版本数据库,涵盖拉取镜像、创建数据目录、运行容器及配置挂载点等操作,并提供验证安装成功的命令和截图。适合需要部署Docker与MySQL环境的用户参考。
290 5
|
4月前
|
存储 弹性计算 Linux
安装Docker
常见操作系统安装docker步骤
568 15
|
4月前
|
Docker 容器
在openEuler 22.03 LTS上安装Docker CE和Docker Compose
以上就是在openEuler 22.03 LTS上安装Docker CE和Docker Compose的过程。希望这个指南能帮助你顺利完成安装。
998 12
|
5月前
|
Linux 虚拟化 Docker
win11怎么安装docker的必要设置自学软硬件工程师778天
win11怎么安装docker的必要设置自学软硬件工程师778天
win11怎么安装docker的必要设置自学软硬件工程师778天
|
5月前
|
Prometheus 监控 Cloud Native
Prometheus+Grafana(docker安装)
本文档详细介绍了如何使用Docker容器快速部署Prometheus监控系统和Grafana数据可视化平台。该方案适用于需要快速搭建监控环境的开发测试场景,具备部署简单、资源占用低、易于维护等特点。