如何快速搭建MSSQL Server 2017 测试环境
mssqlserver+docker部署
1. 具备条件
1.服务器需要大于2G内存。如果不够则可能无法正常启动,查看日志报如下错误:
This program requires a machine with at least 2000 megabytes of memory
2. 已部署好docker 环境
3仓库中搜索相关mssql数据库信息
docker search mssql
[root@node1 ~]# docker search mssql
INDEX NAME DESCRIPTION STARS OFFICIAL AUTOMATED
docker.io docker.io/microsoft/mssql-server-linux Deprecated SQL Server on Linux Container R... 1215
docker.io docker.io/microsoft/mssql-server-windows-developer Official Microsoft SQL Server Developer Ed... 439
docker.io docker.io/microsoft/mssql-server-windows-express Official Microsoft SQL Server Express Edit... 368
docker.io docker.io/microsoft/mssql-tools Official images for Microsoft SQL Server C... 51
docker.io docker.io/rsmoorthy/mssql MSSQL Database (version SQL2000) 12 [OK]
4. 下载镜像 mssql-server-linux
docker pull docker.io/microsoft/mssql-server-linux
5. 查看刚才下载镜像信息
docker image ls
REPOSITORY TAG IMAGE ID CREATED SIZE
docker.io/microsoft/mssql-server-linux latest 314918ddaedf 22 months ago 1.35 GB
6. 查看镜像详细信息可以查看mssqlserer内部版本是 14.0.3048.4
docker inspect docker.io/microsoft/mssql-server-linux
7. 运行mssql
docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=sa123SA?' -p 33061:1433 --name sqlserver -d docker.io/microsoft/mssql-server-linux
指定参数和密码
容器名:sqlserver
镜像名:docker.io/microsoft/mssql-server-linux
容器内端口1433,对外暴露端口33061
8. 查看运行的mysql容器
[root@node1 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
af092620c2b6 docker.io/microsoft/mssql-server-linux "/opt/mssql/bin/sq..." 22 seconds ago Exited (1) 21 seconds ago sqlserver
可以看到 status 是 Exited (1) 21 seconds ago 报错了。
9. 查看报错内容,就是上面提到的内存要大于2G
[root@node1 ~]# docker logs sqlserver
sqlservr: This program requires a machine with at least 2000 megabytes of memory.
10. 本环境使用虚拟机,扩大内存后再启动
docker start sqlserver
- 查看运行的mysql容器,mssql 容器内端口1433,对外暴露端口33061
[root@node1 ~]# docker ps -l
CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES
af092620c2b6 docker.io/microsoft/mssql-server-linux "/opt/mssql/bin/sq..." 9 minutes ago Up 14 seconds 0.0.0.0:33061->1433/tcp sqlserver
- 登录 sqlserver 容器
[root@node1 ~]# docker exec -it sqlserver bash
root@29af0884be94:/#
- 链接 sqlserver
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P sa123SA?
- 执行mssql ,查看有那些数据库最后加GO执行
1> SELECT Name from sys.Databases
2> GO
Name
--------------------------------------------------------------------------------------------------------------------------------
master
tempdb
model
msdb
- 创建数据库
create database mytest
GO
16. 可以自由发挥了
17. 退出mssql
quit