1.docker安装与启动
- 查看docker官网sqlserver镜像源
- https://hub.docker.com/_/microsoft-mssql-server
- 获取docker镜像
docker pull mcr.microsoft.com/mssql/server:2017-latest
- 查看镜像并启动sqlserver
-- 查看镜像 docker images -- 启动sqlserver docker run --name msserver -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=MyPassWord123' -p 1433:1433 -v /opt/msserver/data:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
- –name msserver:指定容器名
- -e ‘ACCEPT_EULA=Y’:同意许可协议
- -e ‘MSSQL_SA_PASSWORD=MyPassWord123’:MSSQL_SA_PASSWORD为密码,要求是最少8位的强密码,要有大写字
母,小写字母,数字以及特殊符号,不然会有一个大坑(docker启动sqlserver容器后过几秒就停止了) - -p 14330:1433: 绑定端口,其中14330是主机的端口,1433是docker内部SQLserver的端口,我们使用14330端口的时候会
自动映射到docker内部的1433端口 - -v /opt/msserver/data:/var/opt/mssql:数据卷映射至本机 /opt/msserver/data文件夹,没有会自动创建
- -d mcr.microsoft.com/mssql/server:2017-latest:后台运行
- 查看是否允许成功
docker ps
- 然后这里我们就配置了SQL Server,接下来我们实际进入容器内操作
-- 进入sqlserver容器 sudo docker exec -it sql1 "bash" -- 登录用户sa,进行数据库操作 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "MyPassWord123"
- 进入这个页面表示登录成功,即可以操作数据库了
- 操作数据库
-- 创建数据库TestDB CREATE DATABASE TestDB -- 使用数据库 USE TestDB -- 创建表 CREATE TABLE Inventory (id INT, LastName NVARCHAR(50), FirstName NVARCHAR(50)) -- 查询表 Select * from Inventory
- 进入这个页面表示登录成功,即可以操作数据库了
2.sqlserver其他配置
- 更改sa的登录密码
sudo docker exec -it msserver /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "MyPassWord123" -Q 'ALTER LOGIN SA WITH PASSWORD="Root1234"'
3.使用Navicat连接SQL Server
- 测试连接如果有报如下错误
- [IM002][Microsoft][ODBC 驱动程序管理器]未发现数据源名称并且未指定默认驱动程序(0)
- 解决方法
* 安装navicat自带sqlncli_x64.msi,就在安装目录下,安装后问题解决! - 测试连接成功