Linux系统通过Docker如何安装SQL Server数据库
本篇内容主要讲解“Linux系统通过Docker如何安装SQL Server数据库”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“Linux系统通过Docker如何安装SQL Server数据库”吧!
一、前言
现在.NET Core已经跨平台了,支持Windows、Linux、Mac系统,而我们也已经在Linux上面使用了Docker。使用.NET开发的人使用最多的就是SQL Server数据,以前是只能在Windows系统上使用,但是从SQL Server 2017开始支持运行在docker上了,也就是说现在SQL Server可以在Linux上运行了。
本文使用的数据库是SQL Server 2017。
二、安装SQL Server
1、拉取SQL Server镜像
要在Docker中安装SQL Server,首先要有SQL Server的镜像,所以第一步是拉取SQL Server镜像
sudo docker pull mcr.microsoft.com/mssql/server:2017-latest
如图所示
2、创建目录
我们知道,Docker容器一旦删除了,那么容器里面的数据也会丢失,所以我们在宿主机上面创建一个目录,用来挂载容器内的目录。
mkdir /etc/sqlserver_data
如图所示
3、运行容器
有了镜像之后,我们就可以根据镜像去运行容器了。
sudo docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=P@ssw0rd," -p 1433:1433 --name sqlserver2017 -v /etc/sqlserver_data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
我们对上面的命令做如下的解释
-e "SA_PASSWORD=P@ssw0rd,":这里是给SA用户设置登录密码,这里设置的密码是P@ssw0rd,。
-v /etc/sqlserver_data:/var/opt/mssql:表示/etc/sqlserver_data目录挂载到容器的/var/opt/mssql目录,这个目录是用来存储数据库文件的,所以最好挂载到容器外部,避免因为不小心删除容器而丢失数据。
-p 1433:1433:表示宿主机的1433端口映射到容器的1433。
如图所示
4、使用命令进入SQL Server
容器运行以后,我们使用exec命令进入SQL Server内部
docker exec -it sqlserver2017 /bin/bash
如图所示
这样我们就进入了容器内部,然后执行下面的命令:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "<YourNewStrong@Passw0rd>"
在示例中的命令如下:
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P P@ssw0rd,
如果成功,应会显示 sqlcmd 命令提示符:1>
。
如图所示
执行下面的命令,查询数据
select name from sys.Databases
如图所示
可以查询出结果。
我们通过命令的方式创建数据库,然后创建表,并插入一些数据。
5、使用SSMS登录SQL Server数据库
上面我们是直接使用命令的方式操作数据库,我们还可以使用Microsoft SQL Server Management Studio(SSMS)进行登录Docker里面的数据库,然后通过图形化界面的方式操作数据库
使用SSMS连接Linux上的SQL Server参考微软官方文档:https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-manage-ssms?view=sql-server-2017
登录成功以后我们查询数据,如图所示
我们往student表里面插入一条数据
我们在Docker里面查看,看看数据有没有变化
我们看到docker里面的数据也发生了变化。 使用SSMS操作数据库就跟在docker里面使用命令直接操作数据库一样。
到此,相信大家对“Linux系统通过Docker如何安装SQL Server数据库”有了更深的了解,不妨来实际操作一番吧!这里是编程网网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341