在Docker中使用Microsoft SQL Server数据库

Posted songyan

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在Docker中使用Microsoft SQL Server数据库相关的知识,希望对你有一定的参考价值。

下图中对SQL Server容器创建及数据库创建等操作进行了记录,方便自己日后查看。(文中的 * 仅表示隐藏自己的个人信息,手动马赛克,哈哈~)

Docker下载可看上一篇博文mac系统,docker下载安装

(下图为拉取完毕之后,使用docker ps查看当前运行容器的情况为起始,即没有将第一步与第二步记录。有空补上)

 

1. 从 Microsoft 容器注册表拉取 SQL Server 2017 Linux 容器映像。

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

  

2. 使用以下命令运行Docker容器映像

docker run -e ‘ACCEPT_EULA=Y‘ -e ‘SA_PASSWORD=<YourStrong!Passw0rd>‘    -p 1433:1433 --name sql1    -d mcr.microsoft.com/mssql/server:2017-latest

这里的 <YourStrong!Passw0rd> 即设置你的数据库密码(注意:这里的密码要符合密码规则)「默认情况下,密码必须至少为 8 个字符长,且包含三个以下四种字符集的字符:大写字母、 小写字母、 十进制数字和符号」。至少8个字符的密码数,其中包括大写/小写/数字/符号这四种中的三种。

这里的 sql1 即是你给这个容器映像取的名称

 

3. 查看容器

docker ps -a

 若只看当前运行的容器则只需输入 docker ps 命令即可

 

4. 进入容器命令

docker exec -it sql1 "bash"

 

5. 在容器内使用使用 sqlcmd 进行本地连接(也可以使用vs Code进行连接数据库,具体可参考使用vscode创建运行sql脚本 和 使用vscode开发一个项目

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ‘<YourNewStrong!Passw0rd>‘

  

6. 创建数据库

CREATE DATABASE TestDB
go

  

7. 在数据库中插入数据

USE TestDB
CREATE TABLE Table1 (id INT, name NVARCHAR(50), quantity INT);
INSERT INTO Table1 VALUES (1, ‘banana‘, 150); INSERT INTO Table1 VALUES (2, ‘orange‘, 154);
go

  

8. 查看数据库中表的数据命令

select * from table1
go

  

9. 退出容器

exit

  

将项目中所要用到的数据库拷贝进容器中,再执行sql文件创建数据库

10. 首先进入本地的sql文件目录下

cd /Users/y*zi/codeProjects/C***z/scripts/database

 进入到该目录之后,使用 ls 查看该目录下所包含的文件

 

11. 拷贝该目录下的sql文件到指定容器中

docker cp /Users/y*zi/codeProjects/C***z/scripts/database/c****gs.sql wzsql:/home

  

12. 进入容器 docker  exec -it wzsql "bash" , 使用命令执行拷贝到容器中的sql文件

/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P ‘Ti****30‘ -i /home/c****gs.sql

  

至此,项目中所需要的数据库就在docker中创建完成了。mac系统中使用了Azure Data Studio进行连接数据库,执行sql导入数据

 

 

参考

[在Docker中体验数据库之Microsoft SQL Server](https://www.cnblogs.com/du-blog/p/10561787.html)

[使用Docker运行SQL Server容器映像](https://docs.microsoft.com/zh-cn/sql/linux/quickstart-install-connect-docker?view=sql-server-2017&pivots=cs1-bash)

以上是关于在Docker中使用Microsoft SQL Server数据库的主要内容,如果未能解决你的问题,请参考以下文章

通过 Docker 实现在 Linux 容器中运行 Microsoft SQL Server 数据库

如何使用分组和分页符来创建双面 s-s-rS 徽章报告? (Microsoft SQL Server 2012 报表生成器)

无法在 .NET 应用程序中访问 SQL Server docker

如何在mac上使用docker连接sql server?

PHP 中 Microsoft SQL Server 的连接参数

如何在 Docker 中从 Docker 连接到 SQL Server 服务?