使用Docker运行Microsoft SQL Server 2017

最近天天都在空闲时间努力编写Apworks框架的案例代码WeText。在文本发布和处理微服务中,我打算使用微软的SQL Server for Linux来作演示,因而也就在本身的docker-compose中加入了MS SQL Server的服务。其实在Docker中运行SQL Server是很是容易的,今天大概作个介绍吧。linux

启动Microsoft SQL Server 2017容器

下面是我目前WeText案例中用于搭建基础结构服务的docker-compose.yml文件(该文件未来还会变更,最新版本请参阅Github):git

version: "3"
services:
    mongodb:
        image: mongo
        volumes:
            - ${MONGODB_DATABASE_VOLUME}
        container_name: mongodb
        ports:
            - "27017:27017"
    rabbit:
        image: rabbitmq:3-management
        ports:
            - "5672:5672"
            - "4369:4369"
            - "5671:5671"
            - "25672:25672"
            - "15672:15672"
        container_name: rabbitmq
        hostname: my-rabbitmq
        volumes:
            - ${RABBITMQ_DATA_VOLUME}
    postgres:
        image: postgres
        ports:
            - "5432:5432"
        container_name: postgres
        volumes:
            - ${POSTGRESQL_DATA_VOLUME}

    mssql:
        image: microsoft/mssql-server-linux:2017-latest
        ports:
            - "1433:1433"
        container_name: mssql
        environment:
            - ACCEPT_EULA=Y
            - SA_PASSWORD=G1veMeP@ss

这个docker-compose文件中包含了四个服务的定义,今天咱们只关注最后一个,也就是mssql。能够看到:github

  1. Microsoft SQL Server的Docker镜像名为:microsoft/mssql-server-linux,tag为2017-latest
  2. SQL Server在容器内侦听1433端口,也就是标准的SQL Server端口
  3. 启动SQL Server容器须要两个环境变量:ACCEPT_EULA=Y,表示接受最终用户许可协议;SA_PASSWORD=G1veMeP@ss,表示设置sa用户的密码。这个用户密码要符合强密码规范(数字、字母、大小写,至少8个字符),以后在客户端链接的时候,就须要使用这个密码登陆服务器

固然,你能够不使用docker-compose,而是直接使用docker run,那么方法也是相似的,好比可使用下面的语句:sql

sudo docker run -e 'ACCEPT_EULA=Y' -e 'SA_PASSWORD=G1veMeP@ss' \
   -p 1433:1433 --name mssql \
   -d microsoft/mssql-server-linux:2017-latest

一样也能够启动SQL Server容器。在Docker中运行SQL Server时,须要注意:mongodb

  1. 主机(host machine)的内存至少须要3.5GB左右
  2. Docker中的SQL Server是开发者版本(Developer Edition),功能与企业版相同,可是仅能用于开发或者测试环境,不得用于生产环境

链接SQL Server 2017

官方文档介绍使用docker exec命令,在已运行的SQL Server 2017容器中,执行sqlcmd命令进行链接和数据库使用。固然,也可使用图形化的客户端,好比SQL Server Management Studio或者Visual Studio的Server Explorer来链接运行于Docker中的SQL Server 2017,方法与链接普通版本SQL Server的方法同样。例如,下面是在Visual Studio的Server Explorer中链接Microsoft SQL Server on Linux for Docker的效果:docker

image

参考文档

相关文章
相关标签/搜索