docker安装 sqlserver2017 或者 2008

一、必要条件

服务器的运行内存必须大于2GB

二、拉取2017镜像

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

三、启动镜像

docker run --name sqlserver2017 --restart always  -v  /home/ceshi1:/var/opt/mssql -d -e 'ACCEPT_EULA=Y' -e  SA_PASSWORD='qwer!@#123' -p 1433:1433   mcr.microsoft.com/mssql/server:2017-latest
  1. -e "ACCEPT_EULA=Y" :提示您接受最终用户许可协议。如果您不同意,安装将不会继续
  2. -e "SA_PASSWORD=qwer!@#123":设置管理员SA的密码(必填参数,密码大于八位,并包含特殊符号)
  3. -p 1433:1433:宿主机端口:容器端口
  4. --name sqlserver2017:设置当前容器的名称。
  5. -d mcr.microsoft.com/mssql/server:2017-latest:-d表示后台方式启动 后面的是 镜像的名称
  6. -v /home/mssql:/var/opt/mssql :-v 挂载目录(映射目录), 宿主机目录:容器内目录
  7. --restart always:设置容器根据docker一起启动

四、拉取2008镜像

docker pull exoplatform/sqlserver

五、启动2008镜像

docker run --name sqlserver2008 --restart always  -v  /home/ceshi2:/var/opt/mssql -d -e 'ACCEPT_EULA=Y'  -e SA_PASSWORD='qwer!@#123' -e SQLSERVER_DATABASE=demo -e SQLSERVER_USER=jige -e SQLSERVER_PASSWORD='qwer!@#123'   -p 1433:1433 exoplatform/sqlserver
  1. -e SQLSERVER_DATABASE=demo:创建一个叫 demo 的数据库
  2. -e SQLSERVER_USER=jige :demo数据库添加了一个用户叫 jige
  3. -e SQLSERVER_PASSWORD='qwer!@#123':设置鸡哥用户的密码

六、进入docker容器操作数据库

6.1进入容器
docker exec -it sqlserver2017 /bin/bash

docker exec -it 容器id或者容器名称 /bin/bash

6.2进入数据库
/opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P "qwer!@#123"

七、使用命令行还原数据库

使用 RESTORE FILELISTONLY 命令来列出备份文件中的逻辑文件名,然后使用正确的逻辑文件名来执行还原操作。

docker exec -it <容器名称或ID> /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<密码>' -Q "RESTORE FILELISTONLY FROM DISK='/opt/要还原的数据库名称'"

执行出来差不多是这样的。
docker安装 sqlserver2017 或者 2008_第1张图片
然后拿到相关的名称执行 还原语句

docker exec -it <容器名称或ID> /opt/mssql-tools/bin/sqlcmd -S localhost -U SA -P '<密码>' -Q "RESTORE DATABASE 数据库名称 FROM DISK='你的数据库备份文件.bak的' WITH MOVE '你第1处的名称叫什么这里就写什么 比如 1.dat' TO '你的mdf文件放在你容器的什么位置 比如 /opt/text.mdf', MOVE '你第2处的名称叫什么这里就写什么 比如 2.log' TO '你的ldf文件放在你容器的什么位置 比如 /opt/text.ldf';"

你可能感兴趣的:(Docker,docker,sqlserver)