1,拉取镜像:
docker pull mcr.microsoft.com/mssql/server:2017-latest
2,查看镜像并允许此镜像
docker images
docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=123456" -p 1433:1433 --name sql1 -d mcr.microsoft.com/mssql/server:2017-latest
3,查看是否允许成功
Docker ps -a
如果失败的话通过docker logs 容器名进行查看错误日志
4,配置SQL Server
docker exec -it sql1 "bash"
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "123456"
创建库
CREATE DATABASE db_database
使用库、创建表
USE db_database
CREATE TABLE Inventory (id INT, LastName NVARCHAR(50), FirstName NVARCHAR(50))
查询表
Select * from Inventory
查询用户创建的表
select name from sysobjects where type = 'U'
系统表sysobjects保存的都是数据库对象,其中type表示各种对象的类型,具体包括:
U = 用户表
S = 系统表
C = CHECK 约束
D = 默认值或 DEFAULT 约束
F = FOREIGN KEY 约束
L = 日志
FN = 标量函数
IF = 内嵌表函数
P = 存储过程
PK = PRIMARY KEY 约束(类型是 K)
RF = 复制筛选存储过程
TF = 表函数
TR = 触发器
UQ = UNIQUE 约束(类型是 K)
V = 视图
X = 扩展存储过程及相关的对象信息。
其他配置
一、更改sa的登录密码
docker exec -it sql1 /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "123456" -Q 'ALTER LOGIN SA WITH PASSWORD="888888"'
二、保留数据
将主机目录装载为数据卷
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=888888' -p 1433:1433 -v /var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
使用数据卷容器
docker run -e 'ACCEPT_EULA=Y' -e 'MSSQL_SA_PASSWORD=888888' -p 1433:1433 -v sqlvolume:/var/opt/mssql -d mcr.microsoft.com/mssql/server:2017-latest
三、删除或退出容器
删除容器:docker rm 容器名
删除镜像:docker rmi 镜像名
退出容器;Ctrl+D
四、修改数据库名和Options的Collocation属性
USE [master];
GO
先修改为单用户模式
ALTER DATABASE old_db_name SET SINGLE_USER WITH ROLLBACK IMMEDIATE;
GO
EXEC sp_renamedb N'old_db_name', N'new_db_name';
GO
alter database db_database Chinese_PRC_90_CI_AS
再修改为多用户模式
ALTER DATABASE [new_db_name'] SET MULTI_USER