dockerstack部署mssql

coding

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

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

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

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

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

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

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


一、前提条件

  • 环境中已经部署了docker swarm(http://www.cnblogs.com/straycats/p/8978135.html)
  • 最好也部署了portainer(http://www.cnblogs.com/straycats/p/8978201.html)
  • 默认swarm创建了network:swarm-net


二、部署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文件中的内容)

以上是 dockerstack部署mssql 的全部内容, 来源链接: utcz.com/z/509535.html

回到顶部