起因是懒

我是个Java程序员,在家写代码时离不开redis、mysql、kafka这些基础服务,通常做法是打开电脑,启动redis、mysql、kafka,用完再关闭电脑,麻烦呀(您想骂我懒么?您骂得对.....)

并非第一次折腾

之前曾折腾过家里的群晖DS218+,装了maven私服nexus3,地址:《群晖DS218+做maven私服(nexus3)》

群晖DS218+

家里有一台群晖DS218+,很久以来始终24小时开机为全家服务,如果能把mysql装到这里,似乎前面的麻烦就没有了;

  • 下图是DS218+刚买来的样子,两块NAS硬盘,一直在稳定服务:



群晖 docker 没有注册表 群晖docker注册表下载失败_群晖docker下载失败


  • 下图是网购的内存条,现在一共2+8=10G内存,内存充足才是敢折腾的底气:


群晖 docker 没有注册表 群晖docker注册表下载失败_mysql_02


  • 据说拆机可以把原装2G内存条换掉,就能装两根8G内存条,目前暂时用不上,我需要克制...

思路

其实操作很简单:群晖带有docker服务,用docker来部署mysql即可,所以,本文其实也就是群晖docker的基本操作记录,以下几处是要注意的地方:

  1. 容器端口
  2. 容器数据卷
  3. 文件权限
  4. 登录容器操作

环境信息

  • 群晖系统:DSM 6.2.2-24922 Update 4
  • Mysql:5.7.29

准备工作

  • 先要给MySQL容器准备好一个本地目录,否则一旦容器出了问题MySQL的数据就找不回来了
  • 如下图,在File Station中,在docker目录下新建一个文件夹,名为mysql:


群晖 docker 没有注册表 群晖docker注册表下载失败_mysql_03


  • 还要给此目录赋予权限,否则容器无法写入数据,如下图,点击右键,在菜单上选择属性


群晖 docker 没有注册表 群晖docker注册表下载失败_mysql_04


  • 如下图,我这里为了简单省事儿放开了所有权限:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖 docker 没有注册表_05


  • 如下图红框中的操作:


群晖 docker 没有注册表 群晖docker注册表下载失败_mysql_06


  • 准备工作已经完成,可以开始正式操作了;

操作

  • 进入群晖管理页面
  • 进入docker应用,搜索mysql镜像,操作如下图的数字顺序,即可开始下载镜像:


群晖 docker 没有注册表 群晖docker注册表下载失败_MySQL_07


  • 镜像下载好之后,操作如下图的数字顺序,进入启动容器的页面:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖 docker 没有注册表_08


  • 给容器起个合适的名字,然后点击高级设置


群晖 docker 没有注册表 群晖docker注册表下载失败_mysql_09


选择这个Tab页,点击添加文件夹


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖 docker 没有注册表_10


选中咱们刚才新建的mysql文件夹:


群晖 docker 没有注册表 群晖docker注册表下载失败_MySQL_11


  • 装载路径是指容器内的路径,写/var/lib/mysql


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖docker下载失败_12


  • 接下来设置端口,如下图,把3306对应的本地端口从自动改为3306


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖docker位置_13


  • 最后在环境的Tab页,增加MySQL的root账号的密码设置,如下图,名字MYSQL_ROOT_PASSWORD,值123456:操作完成后点击右下角的应用按钮完成设置:


群晖 docker 没有注册表 群晖docker注册表下载失败_mysql_14


  • 勾选向导完成后运行此容器,点击右下角的应用即可开始创建容器:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖docker下载失败_15


验证

来验证一下MySQL是否可用:

双击下图红框中的位置:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖 docker 没有注册表_16


在弹出的页面中,继续双击下图红框中的位置:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖docker下载失败_17


如下图操作,即可在MySQL容器的namepace内执行一个shell命令:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖 docker 没有注册表_18


弹出一个窗口让您输入命令,请输入/bin/bash


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖docker位置_19


如下图,进入容器了:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖 docker 没有注册表_20


执行命令mysql -uroot -p123456,可以进入MySQL命令模式了,如下图,操作正常:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖docker下载失败_21


远程连接也要试试,毕竟今后是别的机器通过IP地址来连接的,我这里用了一台Macbook Pro,安装了MySQL Workbench,配置了群晖的IP地址和3306端口,账号是root,密码123456,连接正常,如下图:


群晖 docker 没有注册表 群晖docker注册表下载失败_群晖docker下载失败_22


至此,群晖DS218+部署MySQL成功,今后数据库服务随时可用,也没有什么额外代价,码农福音...