MySQL 进行 Docker 容器化之体验与感悟
时间:2025-11-05 15:51:08 出处:数据库阅读(143)
原则
Docker 的器化使用原则是所有容器化的应用程序都应该是无状态的 ,即容器内部只跑业务逻辑,验感容器应用的器化所有配置文件、日志文件和持久化数据 都应该挂载到宿主机文件系统,验感不应该存储在容器内部,器化以免容器被误删或自身出现问题导致数据丢失。验感

MySQL 容器化方式
MySQL 属于有状态应用,器化若将其容器化需将其状态抽离到宿主机,验感其配置文件、器化日志文件和持久化数据都应该挂载到宿主机。验感
容器内各路径
通过docker pull 命令拉取下来的器化官方 MySQL 镜像内,有几个重要路径:
配置文件 镜像内 MySQL 的验感配置文件路径为/etc/mysql ,路径下包含my.cnf 配置和一个conf.d 文件夹,器化my.cnf 文件内是验感一些base setting ,我们自定义的WordPress模板器化配置应该写在conf.d 文件夹下的配置文件里,从而覆盖base setting 。conf.d 文件夹下默认有两个配置文件:docker.cnf 和mysql.cnf ,在后文所讲的挂载配置路径到宿主机之后,应将这两个用户自定义配置文件拷贝到宿主机配置路径下。 持久化数据 镜像内 MySQL 的持久化数据均存储在/var/lib/mysql 下。命令
$ docker run \ --name db \ -e MYSQL_ROOT_PASSWORD=secret \ -v /path/to/confdir:/etc/mysql/conf.d \ -v /path/to/datadir:/var/lib/mysql \ -d mysql:tag参数解释
--name 容器名称 -e 为新容器设置环境变量,容器内 MySQL 会以此初始化 root 用户密码 -v 两个-v 参数分别将容器内 MySQL 的自定义配置文件目录和持久化数据目录挂载到宿主机,冒号前为宿主机目录,后为容器内目录 -d 后台启动容器小技巧
我们可以在宿主机专门建立一个目录用来存放容器状态数据,层级结构为:
docker-container-data | - container1 | | | - conf | | | - logs (其下又可以细分路径) | | | - data | - container2 | - container3 | ...灾难措施
将状态数据挂载宿主机的好处就是如果容器发生问题,可以启动一个新容器并将容器状态路径挂载到宿主机上的原状态路径,从而恢复生产。
可以直接将新启动的 MySQL 容器的配置和持久化数据挂载到之前容器的云南idc服务商宿主路径,新容器便可以无缝恢复数据(配置、用户、库、表、记录均恢复)。
注意事项
不可以将两个均在运行的容器的状态路径挂载到同一个宿主路径 ,两个容器同时在一个宿主路径下写状态,容器应用读取状态时会无法识别,导致崩溃。
若新启动的容器要挂载之前容器的宿主数据路径,则会忽略-e MYSQL_ROOT_PASSWORD=foo 命令参数所设定的 root 用户密码环境变量,因为挂载的数据路径下已经包含了 MySQL 用户信息表,而 root 用户的密码之前已经被设定过了。
分享到:
温馨提示:以上内容和图片整理于网络,仅供参考,希望对您有帮助!如有侵权行为请联系删除!
猜你喜欢
- 戴尔台式电脑打字教程(从入门到精通,轻松提高打字速度)
- 阿里云Redis读写分离典型场景:如何轻松搭建电商秒杀系统
- 永远不要在MySQL中使用utf8,改用utf8mb4
- C语言令人抓狂的一面-全局变量
- 有时候免不了要使用Windows应用程序,于是在本教程中,我们将使用Wine教你如何在Linux上顺畅地运行Windows应用程序。复制代码代码如下:3. 从左边的Get Software(取得软件)部分中选择“PPA for Ubuntu Wine Team”,然后选择Microsoft Windows Compatibility Layer(Development files) – wine1.3-dev。点击Install(安装)。这会安装最新的Wine软件包,包括开发库。提示:卸载现有的Wine软件包,以确保最大的兼容性。另外,假如想干净安装,你可以删除Wine用户目录,为此可以从主目录中使用命令rm -r -v .wine。复制代码代码如下:复制代码代码如下: 同样地,你也可以给配置脚本指定 prefix 参数。以普通用户安装 wine:复制代码代码如下:复制代码代码如下:下载winetricks脚本:现在我们需要下载一个很棒的脚本,名为winetricks,它会自动下载和安装必要的支持包。复制代码代码如下:现在输入下列命令,安装必要的支持包:复制代码代码如下:提示:你还可以不用任何命令行参数来运行winetricks,那样就能从漂亮的GUI界面选择需要安装的软件包。三. 安装微软Office在本例中,我们将安装微软Office 2007。插入微软Office 2007光盘,鼠标右击setup.exe,选择“Open With Windows Program Loader”。这应该会启动微软Office安装程序。以平常的方式来安装,就像你在任何Windows系统上安装那样。四. 建立库鉴于已安装好了微软Office 2007,大家要确保Wine已经过配置,可以顺利使用该应用软件。你也看到,Wine以自己的方法实施了各种Windows库,但我们可以直接使用原生的Windows库,确保应用程序有最大的兼容性。Wine随带自己的配置工具:winecfg。除了其他功能外,该工具还让我们可以在内置版本的库与原生版本的库之间切换。输入命令winecfg,即可打开Wine配置工具。进入到Libraries(库)选项卡,把riched20和usp10添加到“native, builtin”。这表明,Wine应该先试着装入原生的Windows库;要是没有这些库,它会试着装入内置的库。 五. 运行微软Office微软Office现在应该已出现在Ubuntu程序菜单中。可以先后进入到Application(应用程序)>Programs(程序)>Microsoft Office(微软Office)来访问它。这个过程确实相当简单。假如你只想临时运行某个Windows程序,假设兼容性很好,那么全都妥当了;但是高级用户想要再深入一步的话,需要继续读下去。[NextPage]使用Winelib构建Windows应用程序
- Redis常用数据结构介绍和业务应用场景分析
- 什么是中台架构?真的“烧钱”吗?
- Vue.js设计与实现之五-设计一个完善的响应系统
- 1.下载获取字体并解压安装对于开源操作系统而言,Ubuntu平台默认自带很多字体。但通常情况下用户或许对已有字体并不能满足需要。因此,类似Windows系统一样,用户可以在Ubuntu 14.04、14.10或者像Linux Mint之类系统中安装额外的字体。步骤一: 获取字体首先,下载你所选择的字体。用户会现在你或许在考虑下载字体,通过搜索引擎可以给你提供几个免费的字体网站。用户可以先去看看Lost Type的字体(点击下载),Squirrel也是一个下载字体的网站(点击下载),用户都可以从这两个网站找的需要新字体。步骤二:Ubuntu中安装新字体对于用户来讲,下载的字体文件可能是一个压缩包,先解压它大多数字体文件格式是TTF (TrueType字体) 或者OTF (OpenType字体)。无论是哪种格式,双击字体文件后会自动用字体查看器打开。这里用户可以在右上角看到安装选项。值得注意的是:在安装字体时不会看到其他信息。几秒钟后会看到状态变成已安装,表示字体已经安装完毕。安装完毕后,用户就可以在GIMP、Pina等应用中看到你新安装的字体。2.在Ubuntu上一次安装多字体要在Ubuntu中一次安装多个字体,需要在home目录下创建一个.fonts文件夹(假如它不存在的话),并把解压后的TTF和OTF文件复制到这个文件夹内。在文件管理器中进入home目录。按下Ctrl+H 显示Ubuntu中的隐藏文件,右键创建一个文件夹并命名为.fonts。 值得提醒的是在Linux中,文件前面加上“.”意味在普通的视图中都会隐藏。另外,用户可以通过安装字体管理程序,在图形用户界面管理字体。要在Ubuntu中安装字体管理程序,打开终端并输入下面的命令:要卸载字体管理器,使用下面的命令:在此推荐一下文泉驿正黑字体作为具体示例~上图是在 Xubuntu 14.04 自带文本编辑器 Mousepad 里的字体效果。喜欢锐利清晰字体的 Ubuntu 用户,可以安装文泉驿正黑: 复制代码代码如下:sudo apt-get install fonts-wqy-zenhei 然后在系统字体设置里应用“文泉驿点阵正黑”字体即可。