Docker部署mariadb

为什么选择Docker运行MariaDB?

MariaDB是MySQL的一个分支,兼容性好、性能稳定,很多生产环境都在用。
用Docker部署MariaDB最大的好处是环境隔离,你不用在服务器上手动装一堆依赖库,也不会跟已有MySQL版本冲突。
一条命令就能启动一个干净的数据库实例,换版本升级也很方便。

准备工作:检查Docker环境

开始前确保你的服务器上已经安装了Docker。
如果还没装,可以用下面命令快速安装(适用于CentOS 7/8、Ubuntu 20.04以上):

curl -fsSL https://get.docker.com | bash
sudo systemctl start docker
sudo systemctl enable docker

装好后验证一下:

docker --version

出现版本号就说明环境就绪。

如果你的服务器已经装了宝塔面板,也可以在宝塔的“软件商店”里搜“Docker”一键安装,操作更直观。

核心步骤:拉取镜像与创建容器

1. 拉取MariaDB镜像

docker pull mariadb:10.11

这里指定了10.11版本,这是LTS长期支持版,比较稳。
你也可以拉latest,但建议用具体版本号,避免后续升级不兼容。

2. 创建数据持久化目录

Docker容器默认是临时存储,容器一删数据就没了。
所以一定要把数据库文件映射到宿主机目录:

mkdir -p /data/mariadb/data

3. 运行容器

docker run -d \
  --name my-mariadb \
  -e MARIADB_ROOT_PASSWORD=YourStrongPassword \
  -v /data/mariadb/data:/var/lib/mysql \
  -p 3306:3306 \
  mariadb:10.11

参数解释:

  • -d:后台运行
  • --name:容器名,可以自己改
  • -e MARIADB_ROOT_PASSWORD:设置root密码,把YourStrongPassword换成你自己的(建议含大小写+数字+特殊字符)
  • -v:映射数据目录,左边是宿主机路径,右边是容器内路径
  • -p:端口映射,左边是宿主机端口,右边是容器内端口。如果宿主机3306已被占用,可以改成3307:3306

执行后可以用docker ps查看容器状态,看到Up就代表启动成功。

避坑指南:常见问题与解决方法

问题1:端口被占用
启动时提示port is already allocated,说明宿主机3306端口已被其他程序占用。可以换个端口映射,比如-p 3307:3306,后面连接数据库时端口也改成3307。

问题2:容器启动后马上退出
docker logs my-mariadb查看日志。最常见原因是权限问题:宿主机数据目录的权限不足。解决方法:

chown -R 1001:1001 /data/mariadb/data

然后重启容器。

问题3:root密码设置不生效
一定要用MARIADB_ROOT_PASSWORD这个变量名(注意拼写),不要写成MYSQL_ROOT_PASSWORD。如果你用过旧版镜像,环境变量名称有变化,建议参考官方文档。

问题4:远程连接不上
如果你需要从其他机器连接这个数据库,除了端口映射正确外,还要检查宿主机防火墙是否放行了对应端口。比如用宝塔面板,进入“安全” -> “添加端口规则”,放行3306或你自定义的端口。另外,默认root只允许本地登录,可以进入容器后修改权限,但生产环境不建议直接开放root远程,建议新建一个专用用户。

验证与日常管理

验证数据库是否正常工作

在服务器上执行:

docker exec -it my-mariadb mariadb -u root -p

输入刚才设置的密码,如果能进入MariaDB命令行(显示MariaDB [(none)]>),就说明部署成功。
你可以试试:

SHOW DATABASES;

会看到默认的几个数据库。

日常管理小命令

  • 重启容器:docker restart my-mariadb
  • 查看日志:docker logs -f my-mariadb
  • 停止容器:docker stop my-mariadb
  • 重新启动:docker start my-mariadb
  • 备份数据库:docker exec my-mariadb mysqldump -u root -p --all-databases > /data/backup.sql

升级版本

先拉取新版本镜像,然后停止旧容器,用新镜像创建一个新容器,并把数据目录指向同一个宿主机路径即可。
注意检查版本间的兼容性,建议先测试再升级。

如果你正在处理Docker部署mariadb,建议先按本文步骤完整执行,再根据自己的环境做微调;
遇到异常时优先回看避坑和高频问题部分。

分享到:
上一篇
Linux服务器内核参数优化指南:零基础从配置到效果验证
下一篇
服务器云服务器配置选择:新手选云服务器配置?这4个参数看懂不
1
系统公告

泽御云五一特惠活动🔥

泽御云持证合规运营,资质齐全可查,长久稳定! 五一限时多重福利同步开启: ✅ 香港 2 核 2G 云服务器超值拼团,低价入手团长免费 ✅ 4 核 4G 多机房年付拼团,性价比拉满 ✅ 内蒙古新区限时 7 折(zeyuyunnmg)特惠,专属优惠码锁价续费 ✅ 全站通用 75 折优惠,老用户充值享专属赠金 官方站点:zeyuyun.com 合规资质齐全|售后有保障|活动限时错过不再有
服务中心
客服
在线客服
24小时为您服务
咨询
联系我们
联系我们,为您的业务提供专属服务。
24/7 技术支持
如果您遇到寻求进一步的帮助,请过工单与我们进行联系。
24/7 即时支持
泽御云
售前客服
泽御云
泽御云
售后客服
泽御云
技术支持
评价
您对当前页面的整体感受是否满意?
😞
非常不满意
😕
不满意
😐
一般
🙂
满意
😊
非常满意