CentOS中使用Docker安装SqlServer以及遇到的那些坑

生活中,最使人疲惫的往往不是道路的遥远,而是心中的郁闷;最使人痛苦的往往不是生活的不幸,而是希望的破灭;最使人颓废的往往不是前途的坎坷,而是自信的丧失;最使人绝望的往往不是挫折的打击,而是心灵的死亡。所以我们要有自己的梦想,让梦想的星光指引着我们走出落漠,走出惆怅,带着我们走进自己的理想。

导读:本篇文章讲解 CentOS中使用Docker安装SqlServer以及遇到的那些坑,希望对大家有帮助,欢迎收藏,转发!站点地址:www.bmabk.com,来源:原文

场景

CentOS7中Docker的安装与配置:

https://blog.csdn.net/BADAO_LIUMANG_QIZHI/article/details/119028701

首先按照上面在CentOS7中安装Docker

注:

博客:
https://blog.csdn.net/badao_liumang_qizhi
关注公众号
霸道的程序猿
获取编程相关电子书、教程推送与免费下载。

实现

1、在CenoOS上新建目录mssqlvol,在此目录下新建data、log、secrets三个目录,用来做SqlServer的数据卷映射。

CentOS中使用Docker安装SqlServer以及遇到的那些坑

2、拉取镜像

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

CentOS中使用Docker安装SqlServer以及遇到的那些坑

3、启动

sudo docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=badao123456' -p 1433:1433 -v /mssqlvol/data:/var/opt/mssql/data -v /mssqlvol/log:/var/opt/mssql/log -v /mssqlvol/secrets:/var/opt/mssql/secrets -d mcr.microsoft.com/mssql/server:2019-latest

命令详解:

-e ‘ACCEPT_EULA=Y’  代表同意SQL SERVER使用条框,否则无法使用。

-e ‘MSSQL_SA_PASSWORD=badao123456’  设置SA用户的密码,要求密码长度必须至少为8个字符,并包含以下四组中的三组字符:大写字母、小写字母、以10为基数的数字和符号。

-p 1433:1433  将宿主机1443与容器1443端口进行映射

后面三个-v都是数据卷的映射

-d 后台运行

4、开放防火墙端口

firewall-cmd --zone=public --add-port=1433/tcp --permanent
firewall-cmd --reload

5、进入容器

docker exec -it b998d4bee197 /bin/bash

后面跟的是容器ID

然后到/opt/mssql-tools/bin下,使用sqlcmd连接并创建一个表以及查询所有表

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

通过语句

3> CREATE DATABASE BADAO;
4> SELECT Name from sys.Databases;
5> go

效果:

CentOS中使用Docker安装SqlServer以及遇到的那些坑

输入:

quit

退出语句

输入

exit

退出容器

6、连接SqlServer

下载SSMS

https://docs.microsoft.com/en-us/sql/ssms/download-sql-server-management-studio-ssms?view=sql-server-ver15

CentOS中使用Docker安装SqlServer以及遇到的那些坑

下载之后安装,安装之后连接

CentOS中使用Docker安装SqlServer以及遇到的那些坑

进入到上面映射的数据卷存放data数据的地方

可以看到数据库映射也成功了

CentOS中使用Docker安装SqlServer以及遇到的那些坑

7、踩坑1

容器启动后,过一会就没了。可以通过查看日志的方式排查

查看容器运行日志,后面跟的是容器ID

docker logs -f b998d4bee197

日志提示:

Setup FAILED copying system data file ‘C:\templatedata\master.mdf’ to ‘/var/…   5(Access is denied)

原因是创建的数据卷映射的目录权限不够

赋予权限

sudo chmod 777 -R  /mssqlvol

然后运行容器时使用sudo docker run,原来是直接使用docker run

CentOS中使用Docker安装SqlServer以及遇到的那些坑

8、踩坑2

再次运行还是一会就停止了。再次查看日志

The password does not meet SQL Server password policy requirements because it is not complex enough. The password must be at least 8 characters long and contain characters from three of the following four sets: Uppercase letters, Lowercase letters, Base 10 digits, and Symbols

这是因为密码太简单了,不符合要求

密码长度必须至少为8个字符,并包含以下四组中的三组字符:大写字母、小写字母、以10为基数的数字和符号

CentOS中使用Docker安装SqlServer以及遇到的那些坑

9、踩坑三

使用Navicat连接时提示:

远程主机强迫关闭了一个现有的连接,Client unable to establish connection(10054)

CentOS中使用Docker安装SqlServer以及遇到的那些坑

下载SSMS进行连接,可能跟没开代理有关,所以使用Navicat连接不上。

10、踩坑四

日志中提示:This program requires a machine with at least 2000 megabytes of memory

CentOS中使用Docker安装SqlServer以及遇到的那些坑

这是因为这里使用的是虚拟机,而SqlServer要求至少2G以上的内存。

11、官方教程

可以参照官方教程进行部署和配置

https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-docker-container-configure?view=sql-server-ver15&pivots=cs1-bash

CentOS中使用Docker安装SqlServer以及遇到的那些坑

 

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

文章由极客之音整理,本文链接:https://www.bmabk.com/index.php/post/136205.html

(0)
飞熊的头像飞熊bm

相关推荐

发表回复

登录后才能评论
极客之音——专业性很强的中文编程技术网站,欢迎收藏到浏览器,订阅我们!