docker for windows 使用mssql2017

梦想与她 提交于 2021-02-17 17:00:45
原文: docker for windows 使用mssql2017

确实有些坑,本来之前坑都踩过了,但是时间一久就忘记了,这次换电脑又都踩了一遍。

 

几个要点(坑):

1.docker安装时默认就好。然后C盘必须设置共享,否则后面做文件夹挂载时总是报错。

2.预设SA密码时,别再搞SASASA这种了,必须使用强密码,例如 Abc!@#123456。

3.宿主机使用MSSM链接数据库时,目前我没有改端口使用1433:1433,则要写 "localhost,1433",而不是冒号。

4.做数据库存储目录共享时,注意宿主机(WIN)目录从盘符开始,:使用/代替,例如:  /d/data=d:\data

 

创建mssql2017容器命令

docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Abc!@#123456' -p 1433:1433 -v /d/sql.data/docker:/var/opt/mssql/data --name mssql2017 -d microsoft/mssql-server-linux:2017-latest

 

宿主机可以指安装 MSSM就好了,完整的数据库似乎就不需要了。

 

如果使用的是windows container

则需要拉取 mssql-server-windows-express 使用developer也可以

 docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=Sa111111' -p 1433:1433  -v c:\sqldb:c:\'program files'\'microsoft sql server'\mssql14.sqlexpress\mssql\data1  --name mssql -d  microsoft/mssql-server-windows-express

注意:路径的写法与linux容器的方式不同,空格使用引号括起来,以及,不能映射原始数据库的文件夹data,否则会一直提示失败,原因没具体查,随便建个文件夹就好了,比如data。

 

如果出现the process cannot access the file because it is being used by another process

考虑是主机端口1433被占用,换成14330即可。

docker run WEB时,如果用--network就不需要写-p了,因为主机暴露的端口和容器的就一样了。

 

 

docker run ` -d `
--link mssql01 ` 官方不建议使用link
--name siteserver01 `
-v C:/Users/Administrator/Desktop/Web/SiteServer01:C:/inetpub/wwwroot `
-p 80:80 `
--restart=always `
microsoft/aspnet

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!