Sign inSign up

micrograils/wp-mariadb

By micrograils

Updated 3 months ago

Image
0

2.1K

micrograils/wp-mariadb repository overview

Docker Image Size Docker Pulls Platforms

micrograils/wp-mariadb

一个「开箱即用」的极简 MariaDB 容器镜像,专为 WordPress 及通用 PHP 应用优化。 基于 Alpine Linux,体积仅 70 MB,启动秒级完成。


✨ 特点

  • 超轻量:仅含 MariaDB 官方包,无冗余组件
  • 环境变量完全兼容 Docker Hub 官方 MySQL/MariaDBMARIADB_ROOT_PASSWORDMARIADB_DATABASEMARIADB_USERMARIADB_PASSWORD
  • 支持一次创建多个数据库(逗号分隔),并自动授权给同一用户
  • 首次启动自动:删除 test 库、设置 root 密码、创建用户与库、刷新权限
  • 保留 /docker-entrypoint-initdb.d 钩子:可挂载 .sql / .sh 进行额外初始化
  • 默认开启 TCP 0.0.0.0:3306,容器外即可连接
  • performance_schema 默认关闭,节省内存;需要时可 --performance-schema=ON 开启

版本说明

镜像标签格式:micrograils/wp-mariadb:<ALPINE_VERSION> (例如 3.23

  • <ALPINE_VERSION> 即基础镜像 Alpine Linux 的版本号
  • MariaDB 未重新编译,直接沿用 Alpine 官方仓库提供的二进制包,保证安全与可靠
  • 因此版本号不单独标注 MariaDB,用户可通过 docker exec <容器> mariadb -V 查看当前内置版本

🚀 快速上手

1. 启动单库实例(WordPress 典型场景)
docker run -d \
    --name wp-mariadb \
    -p 3306:3306 \
    -e MARIADB_ROOT_PASSWORD=rootpass \
    -e MARIADB_DATABASE=wordpress \
    -e MARIADB_USER=wpuser \
    -e MARIADB_PASSWORD=wppass \
    micrograils/wp-mariadb:latest

连接测试:

mysql -uwpuser -pwppass -h127.0.0.1 -P3306 -e "SHOW DATABASES;"
2. 一次创建多个库
docker run -d \
    --name wp-mariadb \
    -p 3306:3306 \
    -e MARIADB_ROOT_PASSWORD=rootpass \
    -e MARIADB_DATABASE="wp1,wp2,wp3" \
    -e MARIADB_USER=wpuser \
    -e MARIADB_PASSWORD=wppass \
    micrograils/wp-mariadb:latest
mysql -uwpuser -pwppass -h127.0.0.1 -P3306 -e "SHOW DATABASES;"

🔧 进阶教程

① 挂载自定义初始化脚本

将 SQL 或 Shell 脚本放入 /docker-entrypoint-initdb.d/仅在首次启动(数据目录为空)时执行一次

目录结构示例:

host-init/
├── 01-wordpress.sql
├── 02-create-view.sh
└── 03-load-dump.sql

运行:

docker run -d --name db \
  -v $PWD/host-init:/docker-entrypoint-initdb.d:ro \
  -e MARIADB_ROOT_PASSWORD=rootpass \
  -p 3306:3306 \
  micrograils/wp-mariadb:latest

执行顺序:按文件名字典序,.sql 直接导入,.sh 如果本身是可执行文件,则直接执行,否则通过 sh 执行。


② 数据持久化
docker volume create dbdata
docker run -d --name db \
  -v dbdata:/var/lib/mysql \
  -e MARIADB_ROOT_PASSWORD=rootpass \
  -p 3306:3306 \
  micrograils/wp-mariadb:latest

首次挂载空卷 → 自动初始化; 再次启动 → 直接挂载旧数据,跳过初始化。


③ Docker Compose 示例
services:
  db:
    image: micrograils/wp-mariadb:latest
    container_name: wp-db
    restart: unless-stopped
    environment:
      MARIADB_ROOT_PASSWORD: rootpass
      MARIADB_DATABASE: wordpress
      MARIADB_USER: wpuser
      MARIADB_PASSWORD: wppass
    volumes:
      - dbdata:/var/lib/mysql
    ports:
      - "3306:3306"

volumes:
  dbdata:

📝 环境变量参考

变量说明默认值
MARIADB_ROOT_PASSWORD必填 root 用户密码
MARIADB_DATABASE每次启动都会尝试创建(可逗号分隔多库),不覆盖已有库
MARIADB_USER应用用户名称
MARIADB_PASSWORD应用用户密码,省略时默认使用 MARIADB_USER 的值

🔍 常见问题

Q:连接时提示「Access denied for user 'xxx'@'172.17.0.1'」? A:确保你通过 TCP(-h127.0.0.1 -P3306)连接;镜像已默认开放 0.0.0.0。用户授权范围是 %,容器外可连。

Q:performance_schema 默认没有? A:Alpine 官方包编译时关闭,节省内存。

Q:/docker-entrypoint-initdb.d 里的脚本重复执行吗? A:仅在首次启动(数据目录为空)时执行一次;后续挂载旧卷会自动跳过。


🤝 反馈 & 贡献

gitee 仓库 遇到问题或需要新功能,欢迎提 Issue / PR!


micrograils/wp-mariadb 让数据库像搭积木一样简单。

Tag summary

Content type

Image

Digest

sha256:fbfdd77d1

Size

71.5 MB

Last updated

3 months ago

docker pull micrograils/wp-mariadb