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

https://docs.microsoft.com/zh-cn/sql/linux/sql-server-linux-configure-environment-variables?view=sql-server-linux-2017#use-with-docker

有疑问,可在这里提issue,有人解答:https://github.com/microsoft/mssql-docker/issues

数据库容器挂载及其他命令,可参考:https://www.cnblogs.com/hulizhong/p/11271739.html

posted @ 2020-11-02 20:41  FrankFyy  阅读(5541)  评论(0编辑  收藏  举报