docker 安装sqlserver + 踩坑(docker 无法运行sqlserver 容器)
本文介绍如何在docker 中使用sqlserver镜像,运行sqlserver 容器,并在容器外部访问sqlserver 数据库。本文演示得docker,为windows dockers desktop。
一、查找镜像
在 docker hub(https://hub.docker.com/_/microsoft-mssql-server) 上找到sqlserver 镜像。
二、拉取镜像:
powershell 鼠标右键 以管理员身份运行,输入 官网给出的命令: docker pull mcr.microsoft.com/mssql/server:2017-latest
三、运行sqlserver 数据库容器
运行如下命令,开启容器:docker run -e "ACCEPT_EULA=Y" -e "SA_PASSWORD=Fyy@12345678" -p 1433:1433 --memory 2000M --name sqlserver -d mcr.microsoft.com/mssql/server:2017-latest
其中,有几个坑点:不处理这些坑点,会导致你的 sqlserver 容器不能正常运行。
1."ACCEPT_EULA=Y" 和 "SA_PASSWORD=Fyy@12345678" : windows docker,这里必须是双引号。
2."SA_PASSWORD=Fyy@12345678" 密码复杂度,要有大小写、特殊符号 和 数字
3. --memory 2000M:sqlserver 的容器运行时,内存要>=2000MB,因此,要指定 容器运行时内存。否则容器已启动就推出,且不会有任何异常信息。
当容器不能启动,或者启动就退出时,可以 用命令 docker logs <container> 查看日志,根据日志信息解决问题(<container> 为需要操作的 容器ID或者 name,后面不再说明)。
四、访问数据库:
数据库容器运行后,就可以在容器外,通过ssms 访问数据库。
1. 根据 docker inspect <container> 命令查看sqlserver容器的网络,其中<container> 代表要操作的容器,可以是容器的name 或者ID。
2.容器外 ssms连接数据库:填入容器IP,以及启动容器时设置的账号密码 登录容器数据库。
参考:https://hub.docker.com/_/microsoft-mssql-server
有疑问,可在这里提issue,有人解答:https://github.com/microsoft/mssql-docker/issues
数据库容器挂载及其他命令,可参考:https://www.cnblogs.com/hulizhong/p/11271739.html