===============================================
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文件中的内容)
来源:oschina
链接:https://my.oschina.net/u/4395639/blog/4072870