欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页  >  网络运营

使用Docker运行Microsoft SQL Server 2017的方法

程序员文章站 2022-10-14 08:33:03
最近每天都在空闲时间努力编写apworks框架的案例代码wetext。在文本发布和处理微服务中,我打算使用微软的sql server for linux来做演示,于是也就在...

最近每天都在空闲时间努力编写apworks框架的案例代码wetext。在文本发布和处理微服务中,我打算使用微软的sql server for linux来做演示,于是也就在自己的docker-compose中加入了ms sql server的服务。其实在docker中运行sql server是非常容易的,今天大概做个介绍吧。

启动microsoft sql server 2017容器

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

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。可以看到:

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,那么方法也是类似的,比如可以使用下面的语句:

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时,需要注意:

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运行Microsoft SQL Server 2017的方法

参考文档

  1. run the sql server 2017 container image with docker 
  2. docker repository: microsoft/mssql-server-linux

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。