docker stack 部署 mysql 5.6
===============================================
2018/7/1_第1次修改 ccb_warlock
===============================================
mysql作为常用的关系型数据库和项目的关系非常紧密。由于经常需要搭建临时的mysql服务,而临时搭建时大多只是为了临时查点数据,而正常yum或apt-get的方式安装需要下载大量的时间,且还需要从虚拟机快照的角度进行回滚清理环境。故最近尝试了使用docker快速部署,感觉对于非压力负载环境通过docker方式非常轻便,且清理干净。
由于技术能力和公司业务所限,没有尝试过容器mysql的负载能力,按照一些反馈的说法自己搭建mysql容器的性能远远不如云服务器厂商提供的mysql服务(这里我的理解是个人仅仅是搭了mysql容器但是没有做各方面的优化,性能远远无法满足生产环境的要求),所以容器部署mysql仅仅只是研发内部使用,没有足够的能力做优化还是不要急着上生产环境。
mysql默认是关闭远程访问,最近没时间试验部署直接开机远程访问,目前的教程还需要连到mysql容器内部去进行配置,后期有空我会将缺失的内容补上。
一、前提条件
- 环境中已经部署了docker swarm(http://www.cnblogs.com/straycats/p/8978135.html)
- 最好也部署了portainer(http://www.cnblogs.com/straycats/p/8978201.html)
- 默认部署的服务器IP:192.168.12.11
- 默认swarm创建了network:myswarm-net
二、部署mysql容器(5.6)
2.1 创建映射目录
mkdir -p /usr/docker-vol/mysql/data
2.2 配置mysql-stack.yml
# 编辑mysql-stack.yml
vi /root/mysql-stack.yml
# 添加下面的内容到mysq-stack.yml中,wq保存
version: '3.6'
services: mysql:
image: mysql:5.6.40
environment:
# 设置时区为Asia/Shanghai
- TZ=Asia/Shanghai
- MYSQL_ROOT_PASSWORD=123456
volumes:
- /usr/docker-vol/mysql/data:/var/lib/mysql
deploy:
replicas: 1
restart_policy:
condition: any
resources:
limits:
cpus: "0.2"
memory: 512M
update_config:
parallelism: 1 # 每次更新1个副本
delay: 5s # 每次更新间隔
monitor: 10s # 单次更新多长时间后没有结束则判定更新失败
max_failure_ratio: 0.1 # 更新时能容忍的最大失败率
order: start-first # 更新顺序为新任务启动优先
ports:
- 3306:3306
networks:
- myswarm-net networks:
myswarm-net:
external: true
2.3 部署服务栈
1)命令方式
cd
docker stack deploy -c mysql-stack.yml mysql-stack
2)portainer界面方式(推荐)
登录portainer(如果是根据上面的教程部署的portainer,浏览器访问http://宿主机IP:9000,在stack中增加mysql-stack.yml文件中的内容)
三、配置mysql允许远程IP访问
官方提供的镜像和安装在linux的配置一样,初始只允许本地服务访问mysql,需要调整mysql的配置之后才能达到远程连接的目的。(正如前面讲的,目前的方案并不是很合理,将来需要优化这个方式)
# 获取容器id
docker ps
找到mysql-stack_mysql.*******************的CONTAINER ID(我这里的是0d66abc8ce32)
# 进入容器
docker exec -it 0d66abc8ce32 /bin/bash
# 登录mysql
mysql -uroot -p
输入初始化的root密码123456登录。

# 进入mysql库
mysql> use mysql;
# 设置允许root用户用于通过任意IP访问mysql
mysql> grant all privileges on *.* to root@'%' identified by "";
# 使配置立即生效
mysql> flush privileges;
# 退出mysql
mysql> exit
# 退出容器
exit
接着用navicat连接192.168.12.11:3306,用户名/密码:root/123456,提示连接成功,说明mysql容器已经可以使用了。

docker stack 部署 mysql 5.6的更多相关文章
- 在Centos上安装docker,部署mysql数据库
		何为docker? Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级.可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化. 本机环境 24小时不关机的Centos ... 
- 利用Docker快速部署Mysql
		写在前面 我又来更新了~~~,今天内容较少,主要是利用Docker快速部署Mysql和初始化数据 利用Docker下载Mysql 简洁明了,在命令提示符中输入 docker pull mysql:8. ... 
- docker stack 部署 mssql
		=============================================== 2019/12/8_第1次修改 ccb_warlock == ... 
- docker stack 部署容器监控方案(cAdvisor、Prometheus、Grafana)
		=============================================== 2018/7/8_第1次修改 ccb_warlock === ... 
- docker stack 部署 filebeat
		=============================================== 2018/7/21_第3次修改 ccb_warlock 更新 ... 
- docker stack 部署 redis
		=============================================== 2019/4/16_第2次修改 ccb_warlock 更新 ... 
- docker stack 部署 seafile(http)
		=============================================== 2018/5/13_第1次修改 ccb_warlock == ... 
- docker stack 部署 rabbitmq 容器
		=============================================== 2018/5/13_第1次修改 ccb_warlock == ... 
- docker环境部署mysql
		参考文档 docker官方:https://hub.docker.com/_/mysql/?tab=description 部署步骤 1. 拉取镜像 这里我拉取了tag为5.7的镜像 docker p ... 
随机推荐
- kickstart无人值守安装之实践篇
			1.系统环境准备 涉及的服务有: DHCP服务 TFTP服务 PXE客户端 HTTP服务 [root@ks ~]# cat /etc/redhat-release CentOS release 6.9 ... 
- 【bzoj4542】 Hnoi2016—大数
			http://www.lydsy.com/JudgeOnline/problem.php?id=4542 (题目链接) 题意 给出一个素数$P$,一个数串$S$,$m$个询问,每次询问区间$[l,r] ... 
- 谷歌发布 Android 8.1 首个开发者预览版,优化内存效率
			今晨,谷歌推出了 Android 8.1 首个开发者预览版,此次升级涵盖了针对多个功能的提升优化,其中包含对 Android Go (设备运行内存小于等于 1 GB)和加速设备上对机器学习的全新神经网 ... 
- MySQL 第一篇:初识数据库
			一 数据库管理软件的由来 基于我们之前所学,数据要想永久保存,都是保存于文件中,毫无疑问,一个文件仅仅只能存在于某一台机器上. 如果我们暂且忽略直接基于文件来存取数据的效率问题,并且假设程序所有的组件 ... 
- 三、Linux学习之命令基本格式篇
			一.命令格式 命令 [选项] [参数] 注意: 1.和别命令使用不遵循此格式 2.当有多个选项时,可以写在一起 3.简化选项与完整选项(-a 等价于--all) 4.中括号为可选,意思是可以有可以没有 ... 
- P1077 摆花
			P1077 摆花 题目描述 小明的花店新开张,为了吸引顾客,他想在花店的门口摆上一排花,共 m 盆.通过调查顾客的喜好,小明列出了顾客最喜欢的 n 种花,从 1 到 n 标号.为了在门口展出更多种花, ... 
- VS批处理命令使用
			在项目开始生成或者生成完成后想做一些操作,比如去编译非解决方案下的的项目,完成编译后复制文件到某个文件夹之类的纠结需求. 1. 基本使用 预先生成事件命令行,可以在项目编译的过程中运行 后期生成事件命 ... 
- Java poi读取,写入Excel2003
			Java poi读取,写入Excel2003 相关阅读:poi读写Excel2007:http://www.cnblogs.com/gavinYang/p/3576741.htmljxl读写excel ... 
- 翻译: 星球生成 I
			翻译: 星球生成 I 本文翻译自Planet Generation - Part I 译者: FreeBlues 以下为译文: 概述 我一直是一个过程内容生成的爱好者, 它允许你创建一个甚至不断改变的 ... 
- Codeforces Round #476 (Div. 2) [Thanks, Telegram!] C
			http://codeforces.com/contest/965/problem/C 题目大意:n个糖,k个人,每次最多只能拿M个糖,从第一个人开始拿,可以循环D次.问Arkady最多可以拿几块糖? ... 
