docker 安装sqlserver数据库并开启代理(保姆级)

简介: docker 安装sqlserver数据库并开启代理(保姆级)

-目录-

一、安装docker

二、安装sqlserver数据库

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

2.2 要使用 Docker 运行 Linux 容器映像,可以从 Bash Shell 或提升的 PowerShell 命令提示符使用以下命令

2.3 要查看 Docker 容器,请使用 docker ps 命令。

2.4 如果 STATUS 列显示 Up 状态,则 SQL Server 正在容器中运行,并且在侦听 PORTS 列中指定的端口。

2.5 最后一步,更改 SA 密码,因为 MSSQL_SA_PASSWORD 在 ps -eax 输出中可见,并存储在同名的环境变量中。 请参阅以下步骤

三、连接到sqlserver数据库

3.1 使用 docker exec -it 命令在运行的容器内部启动交互式 Bash Shell。 在下面的示例中,sql1 是在创建容器时由 --name 参数指定的名称。

3.2 在容器内部使用完整路径通过 sqlcmd 进行本地连接。

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

四、开启sqlserver数据库代理

4.1 进入容器

4.2 提升权限

4.3 安装sudo

4.4 第二种方式:使用root用户进入容器

4.5 执行开启命令

4.6 重启sqlserver

一、安装docker

任何受支持的 Linux 发行版上的 Docker 引擎 1.8 及更高版本。 有关详细信息,请参阅 Install Docker(安装 Docker)。


二、安装sqlserver数据库

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

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

1.前一个命令请求最新的 SQL Server 2022 (16.x) Linux 容器映像。 如果想请求某个特定映像,需添加一个冒号和标记名称,如 mcr.microsoft.com/mssql/server:2022-GA-ubuntu。 若要查看所有可用映像,请参阅 mssql-server Docker hub 页。

2.对于本文中的 bash 命令,将使用 sudo。 如果不想使用 sudo 来运行 Docker,可以配置一个 docker

组,并将用户添加到该组。 有关详细信息,请参阅 Post-installation steps for Linux(适用于 Linux

的安装后步骤)。

2.2 要使用 Docker 运行 Linux 容器映像,可以从 Bash Shell 或提升的 PowerShell 命令提示符使用以下命令

SA_PASSWORD 环境变量已弃用。 请改用 MSSQL_SA_PASSWORD。

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

2.3 要查看 Docker 容器,请使用 docker ps 命令。

sudo docker ps -a

应该会看到与下面类似的输出:

CONTAINER ID   IMAGE                                        COMMAND                    CREATED         STATUS         PORTS                                       NAMES
d4a1999ef83e   mcr.microsoft.com/mssql/server:2022-latest   "/opt/mssql/bin/perm..."   2 minute

2.4 如果 STATUS 列显示 Up 状态,则 SQL Server 正在容器中运行,并且在侦听 PORTS 列中指定的端口。

如果 SQL Server 容器的 STATUS 列显示 Exited,请参阅配置指南的疑难解答部分。 一旦 SQL Server 错误日志显示以下消息,就可连接此服务器:SQL Server is now ready for client connections. This is an informational message; no user action is required。 可以使用以下命令查看容器内的 SQL Server 错误日志:

docker exec -t sql1 cat /var/opt/mssql/log/errorlog | grep connection

2.5 最后一步,更改 SA 密码,因为 MSSQL_SA_PASSWORD 在 ps -eax 输出中可见,并存储在同名的环境变量中。 请参阅以下步骤

SA 帐户是安装过程中在 SQL Server 实例上创建的系统管理员。 创建 SQL Server 容器后,可以通过在容器中运行 echo $MSSQL_SA_PASSWORD 来发现指定的 MSSQL_SA_PASSWORD 环境变量。 出于安全考虑,请考虑更改 SA 密码。


1.选择 SA 用户要使用的强密码。

2.使用 docker exec 运行sqlcmd,以使用 Transact-SQL 更改密码。 以下示例将从用户输入中读取旧密码和新密码。

sudo docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd \
-S localhost -U SA \
 -P "$(read -sp "Enter current SA password: "; echo "${REPLY}")" \
 -Q "ALTER LOGIN SA WITH PASSWORD=\"$(read -sp "Enter new SA password: "; echo "${REPLY}")\""

三、连接到sqlserver数据库

下列步骤在容器内部使用 SQL Server 命令行工具 sqlcmd 来连接 SQL Server。


3.1 使用 docker exec -it 命令在运行的容器内部启动交互式 Bash Shell。 在下面的示例中,sql1 是在创建容器时由 --name 参数指定的名称。

sudo docker exec -it sql1 “bash”


3.2 在容器内部使用完整路径通过 sqlcmd 进行本地连接。

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

“YourNewStrong@Passw0rd”


可以省略命令行上提示要输入的密码。 下面是一个示例:

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

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

四、开启sqlserver数据库代理

4.1 进入容器

docker exec -it xxx /bin/bash

4.2 提升权限

su - root

4.3 安装sudo

apt-get update

apt-get install sudo

apt-get install systemctl


4.4 第二种方式:使用root用户进入容器

docker exec -u root -it xxx /bin/bash

4.5 执行开启命令

sudo /opt/mssql/bin/mssql-conf set sqlagent.enabled true

4.6 重启sqlserver

docker restart xxx
相关文章
|
关系型数据库 应用服务中间件 nginx
Docker一键安装中间件(RocketMq、Nginx、MySql、Minio、Jenkins、Redis)
本系列脚本提供RocketMQ、Nginx、MySQL、MinIO、Jenkins和Redis的Docker一键安装与配置方案,适用于快速部署微服务基础环境。
|
11月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS费用价格:MySQL、SQL Server、PostgreSQL和MariaDB引擎收费标准
阿里云RDS数据库支持MySQL、SQL Server、PostgreSQL、MariaDB,多种引擎优惠上线!MySQL倚天版88元/年,SQL Server 2核4G仅299元/年,PostgreSQL 227元/年起。高可用、可弹性伸缩,安全稳定。详情见官网活动页。
1695 152
|
11月前
|
关系型数据库 MySQL 数据库
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎
阿里云数据库RDS支持MySQL、SQL Server、PostgreSQL和MariaDB引擎,提供高性价比、稳定安全的云数据库服务,适用于多种行业与业务场景。
1125 156
|
11月前
|
SQL 人工智能 Linux
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
799 5
SQL Server 2025 RC1 发布 - 从本地到云端的 AI 就绪企业数据库
|
11月前
|
关系型数据库 数据库 PostgreSQL
docker 安装 Postgres 17.6
本文介绍如何通过Docker安装和配置PostgreSQL 17.6。内容包括拉取镜像、导出配置文件、运行容器并挂载数据与配置文件目录,以及进入容器使用psql操作数据库的完整步骤,便于持久化管理和自定义配置。
1708 3
docker 安装 Postgres 17.6
|
10月前
|
NoSQL 算法 Redis
【Docker】(3)学习Docker中 镜像与容器数据卷、映射关系!手把手带你安装 MySql主从同步 和 Redis三主三从集群!并且进行主从切换与扩容操作,还有分析 哈希分区 等知识点!
Union文件系统(UnionFS)是一种**分层、轻量级并且高性能的文件系统**,它支持对文件系统的修改作为一次提交来一层层的叠加,同时可以将不同目录挂载到同一个虚拟文件系统下(unite several directories into a single virtual filesystem) Union 文件系统是 Docker 镜像的基础。 镜像可以通过分层来进行继承,基于基础镜像(没有父镜像),可以制作各种具体的应用镜像。
957 6
|
10月前
|
Java Linux 虚拟化
【Docker】(1)Docker的概述与架构,手把手带你安装Docker,云原生路上不可缺少的一门技术!
1. Docker简介 1.1 Docker是什么 为什么docker会出现? 假定您在开发一款平台项目,您的开发环境具有特定的配置。其他开发人员身处的环境配置也各有不同。 您正在开发的应用依赖于您当前的配置且还要依赖于某些配置文件。 您的企业还拥有标准化的测试和生产环境,且具有自身的配置和一系列支持文件。 **要求:**希望尽可能多在本地模拟这些环境而不产生重新创建服务器环境的开销 问题: 要如何确保应用能够在这些环境中运行和通过质量检测? 在部署过程中不出现令人头疼的版本、配置问题 无需重新编写代码和进行故障修复
767 2
|
11月前
|
关系型数据库 分布式数据库 数据库
阿里云数据库收费价格:MySQL、PostgreSQL、SQL Server和MariaDB引擎费用整理
阿里云数据库提供多种类型,包括关系型与NoSQL,主流如PolarDB、RDS MySQL/PostgreSQL、Redis等。价格低至21元/月起,支持按需付费与优惠套餐,适用于各类应用场景。
|
12月前
|
SQL 人工智能 Linux
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
SQL Server 2025 RC0 发布 - 从本地到云端的 AI 就绪企业数据库
469 5