本站支持搜索的镜像仓库:Docker Hub、gcr.io、ghcr.io、quay.io、k8s.gcr.io、registry.gcr.io、elastic.co、mcr.microsoft.com
该容器镜像包含MariaDB 10.1 SQL数据库服务器,适用于OpenShift和通用使用场景。用户可选择基于RHEL或CentOS的镜像版本:
registry.access.redhat.com/rhscl/mariadb-101-rhel7centos/mariadb-101-centos7该容器镜像提供MariaDB mysqld守护进程和客户端应用的容器化打包。mysqld服务器守护进程接受客户端连接,并代表客户端提供对MySQL数据库内容的访问。更多关于MariaDB项目的信息可访问官方网站([***]
适用于需要部署MariaDB 10.1数据库服务器的场景,包括开发、测试和生产环境,支持OpenShift平台及通用Docker环境,满足中小型应用的数据库服务需求。
以下示例基于Red Hat Container Catalog的MariaDB 10.1镜像rhscl/mariadb-101-rhel7。
若仅设置必要环境变量且不使用主机目录存储数据库,执行以下命令:
$ docker run -d --name mariadb_database -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -e MYSQL_DATABASE=db -p 3306:3306 rhscl/mariadb-101-rhel7
此命令将创建名为mariadb_database的容器,运行MySQL数据库db,用户凭据为user:pass,并映射主机3306端口到容器。
若需数据库在容器重启后持久化,添加-v /host/db/path:/var/lib/mysql/data参数(/host/db/path为主机目录):
$ docker run -d --name mariadb_database -e MYSQL_USER=user -e MYSQL_PASSWORD=pass -e MYSQL_DATABASE=db -v /host/db/path:/var/lib/mysql/data -p 3306:3306 rhscl/mariadb-101-rhel7
说明:首次运行时,若数据目录未初始化,入口脚本将执行mysql_install_db初始化数据库、用户及密码;初始化后或数据已存在时,直接启动mysqld(PID 1)。停止容器:docker stop mariadb_database。
通过-e VAR=VALUE设置以下环境变量:
MYSQL_USER:需创建的MySQL用户名MYSQL_PASSWORD:用户对应的密码MYSQL_DATABASE:数据库名称MYSQL_ROOT_PASSWORD(可选):root用户密码MYSQL_LOWER_CASE_TABLE_NAMES:表名存储与比较方式,默认0MYSQL_MAX_CONNECTIONS:最大客户端连接数,默认151MYSQL_MAX_ALLOWED_PACKET:最大数据包大小,默认200MMYSQL_FT_MIN_WORD_LEN:FULLTEXT索引最小词长,默认4MYSQL_FT_MAX_WORD_LEN:FULLTEXT索引最大词长,默认20MYSQL_AIO:控制innodb_use_native_aio设置,默认1MYSQL_TABLE_OPEN_CACHE:所有线程的打开表数量,默认400MYSQL_KEY_BUFFER_SIZE:索引块缓冲区大小,默认32M或可用内存的10%MYSQL_SORT_BUFFER_SIZE:排序缓冲区大小,默认256KMYSQL_READ_BUFFER_SIZE:顺序扫描缓冲区大小,默认8M或可用内存的5%MYSQL_INNODB_BUFFER_POOL_SIZE:InnoDB缓冲池大小,默认32M或可用内存的50%MYSQL_INNODB_LOG_FILE_SIZE:日志文件大小,默认8M或可用内存的15%MYSQL_INNODB_LOG_BUFFER_SIZE:InnoDB日志缓冲区大小,默认8M或可用内存的15%MYSQL_DEFAULTS_FILE:替代配置文件路径,默认/etc/my.cnfMYSQL_BINLOG_FORMAT:二进制日志格式,支持row和statement,默认statementMYSQL_LOG_QUERIES_ENABLED:启用查询日志,设为1启用,默认0通过-v /host:/container挂载以下目录:
/var/lib/mysql/data:MySQL数据目录注意:挂载主机目录到容器时,需确保目录权限正确,且所有者/组与容器内运行用户的UID或名称匹配。
当容器使用--memory参数指定内存且未手动设置部分参数时,其值将基于可用内存自动计算:
MYSQL_KEY_BUFFER_SIZE:默认可用内存的10%(key_buffer_size)MYSQL_READ_BUFFER_SIZE:默认可用内存的5%(read_buffer_size)MYSQL_INNODB_BUFFER_POOL_SIZE:默认可用内存的50%(innodb_buffer_pool_size)MYSQL_INNODB_LOG_FILE_SIZE:默认可用内存的15%(innodb_log_file_size)MYSQL_INNODB_LOG_BUFFER_SIZE:默认可用内存的15%(innodb_log_buffer_size)默认root用户无密码,仅允许本地连接。通过MYSQL_ROOT_PASSWORD环境变量设置密码后,可远程访问root账户;本地连接仍无需密码。取消远程访问: unset MYSQL_ROOT_PASSWORD并重启容器。
数据库用户(MYSQL_USER)和root用户的密码仅支持通过环境变量MYSQL_PASSWORD和MYSQL_ROOT_PASSWORD修改。通过SQL语句或其他方式修改会导致环境变量与实际密码不匹配,容器重启后将重置为环境变量值。
默认配置文件路径为/etc/my.cnf,可通过MYSQL_DEFAULTS_FILE环境变量指定替代配置文件,如MYSQL_DEFAULTS_FILE=/etc/mysql/my.cnf。
通过source-to-image扩展镜像,示例命令:
$ s2i build ~/image-configuration/ rhscl/mariadb-101-rhel7 my-mariadb-rhel7
构建目录可包含以下子目录,文件将复制到镜像的/opt/app-root/src:
mysql-cfg/:配置文件目录,启动时应用于mysqld,支持envsubst环境变量替换mysql-pre-init/:*.sh脚本,在mysqld启动前执行mysql-init/:*.sh脚本,在mysqld本地启动后执行,可使用${mysql_flags}连接数据库(如mysql $mysql_flags < dump.sql)$mysql_flags:连接本地mysqld的mysql工具参数$MYSQL_RUNNING_AS_MASTER:容器以run-mysqld-master启动时定义$MYSQL_RUNNING_AS_SLAVE:容器以run-mysqld-slave启动时定义$MYSQL_DATADIR_FIRST_INIT:数据目录首次初始化时定义启动容器时挂载目录覆盖自定义配置:-v ./image-configuration/:/opt/app-root/src/。
创建SSL证书目录(如sslapp/mysql-certs/),存放证书:
server-cert-selfsigned.pem(服务器证书)server-key.pem(服务器密钥)在mysql-cfg/中添加SSL配置文件(如ssl.cnf):
[mysqld] ssl-key=${APP_DATA}/mysql-certs/server-key.pem ssl-cert=${APP_DATA}/mysql-certs/server-cert-selfsigned.pem
通过-v挂载目录或s2i构建新镜像应用配置。
mysqldump/mysqldbexport导出,新数据库导入mysqld后执行mysql_upgrade,仅支持前一版本升级通过MYSQL_DATADIR_ACTION变量控制升级行为(多值用逗号分隔):
upgrade-warn(默认):版本不匹配时警告,首次初始化创建版本文件upgrade-auto:仅前一版本数据自动执行mysql_upgrade,其他版本警告upgrade-force:强制执行mysql_upgrade --force,无视版本optimize:执行mysqlcheck --optimize优化表analyze:执行mysqlcheck --analyze分析表disable:不执行版本检查相关操作mysqld日志输出到标准输出,通过以下命令查看容器日志:
docker logs <container>
镜像Dockerfile及源码:[***]

免费版仅支持 Docker Hub 加速,不承诺可用性和速度;专业版支持更多镜像源,保证可用性和稳定速度,提供优先客服响应。
免费版仅支持 docker.io;专业版支持 docker.io、gcr.io、ghcr.io、registry.k8s.io、nvcr.io、quay.io、mcr.microsoft.com、docker.elastic.co 等。
当返回 402 Payment Required 错误时,表示流量已耗尽,需要充值流量包以恢复服务。
通常由 Docker 版本过低导致,需要升级到 20.x 或更高版本以支持 V2 协议。
先检查 Docker 版本,版本过低则升级;版本正常则验证镜像信息是否正确。
使用 docker tag 命令为镜像打上新标签,去掉域名前缀,使镜像名称更简洁。
探索更多轩辕镜像的使用方法,找到最适合您系统的配置方式
通过 Docker 登录方式配置轩辕镜像加速服务,包含7个详细步骤
在 Linux 系统上配置轩辕镜像源,支持主流发行版
在 Docker Desktop 中配置轩辕镜像加速,适用于桌面系统
在 Docker Compose 中使用轩辕镜像加速,支持容器编排
在 k8s 中配置 containerd 使用轩辕镜像加速
在宝塔面板中配置轩辕镜像加速,提升服务器管理效率
在 Synology 群晖NAS系统中配置轩辕镜像加速
在飞牛fnOS系统中配置轩辕镜像加速
在极空间NAS中配置轩辕镜像加速
在爱快ikuai系统中配置轩辕镜像加速
在绿联NAS系统中配置轩辕镜像加速
在威联通NAS系统中配置轩辕镜像加速
在 Podman 中配置轩辕镜像加速,支持多系统
配置轩辕镜像加速9大主流镜像仓库,包含详细配置步骤
无需登录即可使用轩辕镜像加速服务,更加便捷高效
需要其他帮助?请查看我们的 常见问题 或 官方QQ群: 13763429