docker stack 部署 mssql

时间:2022-05-03 07:22:50

===============================================

 2019/12/8_第1次修改                       ccb_warlock

 

===============================================

因为最近的工作项目使用的是mssql(自从知道mssql之后,我几乎不再说起另一个累赘的名字:sql server),不得不去重新学习使用mssql。

我的理解是,使用mssql仅仅只是使用数据表时,用docker运行一个开发用的容器比起在一台win server中安装一个来的高效且省资源。

当然如果还需要写存储过程及其调试,那还是用ssms来开发和调试吧(过程比起oracle、mysql虐心太多)。

因为我自学过docker、又喜欢折腾这种可以省时间的技术,所以整理了这篇笔记给路人参考。

 

一、前提条件

 

二、部署MSSQL

由于项目需要,我部署的是mssql 2017。

2.1 创建目录映射

mkdir -p /usr/docker-vol/mssql

 

2.2 配置mssql-stack.yml

 # 编辑mssql-stack.yml

mkdir -p /opt/compose
vi /opt/compose/mssql-stack.yml

 

 # 添加下面的内容到mssql-stack.yml文件内,wq保存。

version: "3.6"
services:
  mssql:
    image: mcr.microsoft.com/mssql/server:2017-latest-ubuntu
    environment:
      - TZ=Asia/Shanghai
      - ACCEPT_EULA=Y # 同意条款
      - SA_PASSWORD=Abc111111 # sa账号的密码
    volumes:
      - /usr/docker-vol/mssql:/var/opt/mssql
    deploy:
      replicas: 1
      restart_policy:
        condition: any
      resources:
        limits:
          cpus: "1"
          memory: 2G # mssql至少要2G内存,不要限制的太小了
      update_config:
        parallelism: 1 # 每次更新1个副本
        delay: 5s # 每次更新间隔 
        monitor: 10s # 单次更新多长时间后没有结束则判定更新失败
        max_failure_ratio: 0.1 # 更新时能容忍的最大失败率
        order: start-first # 更新顺序为新任务启动优先
    ports:
      - 1433:1433
    networks:
      - swarm-net

networks:
  swarm-net:
    external: true

 

2.3 创建服务

1)命令方式

cd /opt/compose
docker stack deploy -c mssql-stack.yml mssql-stack

 

2)portainer界面方式(推荐)

 登录portainer(如果是根据上面的教程部署的portainer,浏览器访问http://宿主机IP:9000,在stack中增加mssql-stack.yml文件中的内容)