centos/mariadb55-centos7本镜像基于CentOS7构建,提供MariaDB数据库服务。其构建参考了Stephen Tweedie的MariaDB Dockerfile,旨在通过容器化方式快速部署MariaDB环境。
该镜像已过时(Deprecated),官方推荐使用替代镜像:centos/mariadb-101-centos7。建议现有用户迁移至推荐镜像以获取更好的兼容性和安全性支持。
适用于开发或测试环境中快速搭建MariaDB数据库服务,不推荐用于生产环境。
/var/lib/mysql目录,避免容器更新导致数据丢失(推荐生产环境使用)。centos/mariadb-101-centos7镜像。docker version命令验证。从源码构建镜像(需先获取Dockerfile):
bashdocker build --rm --tag <yourname>/mariadb55 .
构建完成后,通过docker images命令确认镜像存在。
直接启动容器,数据存储于容器内部(容器删除后数据丢失):
bashdocker run --name=mariadb -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=<password> <yourname>/mariadb55
--name=mariadb:指定容器名称为mariadb。-d:后台运行容器。-p 3306:3306:映射容器3306端口至主机3306端口(主机端口可自定义)。-e MYSQL_ROOT_PASSWORD=<password>:设置MariaDB root用户密码(必填)。通过数据卷容器分离存储数据,确保容器更新或删除后数据不丢失。
步骤1:创建数据卷容器
数据卷容器仅用于挂载数据卷,无需运行:
bashdocker run --name=mariadb-data -v /var/lib/mysql <yourname>/mariadb55 true
--name=mariadb-data:指定数据卷容器名称。-v /var/lib/mysql:将容器内/var/lib/mysql目录定义为数据卷(持久化存储数据库文件)。步骤2:启动MariaDB容器(挂载数据卷)
bashdocker run --name=mariadb -d -p 3306:3306 \ --volumes-from=mariadb-data \ # 挂载数据卷容器中的数据卷 -e MYSQL_ROOT_PASSWORD=<password> \ # 必选:设置root密码 [ -e MYSQL_DATABASE=<dbname> ] \ # 可选:创建额外数据库 [ -e MYSQL_USER=<username> ] \ # 可选:创建额外用户(需配合MYSQL_PASSWORD使用,原文未提及,建议补充密码变量) [ -e MYSQL_CHARSET=<charset> ] \ # 可选:指定数据库字符集(如utf8mb4) [ -e MYSQL_COLLATION=<collation> ] \ # 可选:指定数据库排序规则(如utf8mb4_general_ci) <yourname>/mariadb55
| 环境变量名 | 作用描述 | 是否必填 |
|---|---|---|
MYSQL_ROOT_PASSWORD | 设置MariaDB root用户的初始密码 | 是 |
MYSQL_DATABASE | 启动时自动创建指定名称的数据库 | 否 |
MYSQL_USER | 启动时自动创建指定名称的数据库用户(需配合密码变量使用,建议补充MYSQL_PASSWORD) | 否 |
MYSQL_CHARSET | 指定数据库默认字符集(如utf8mb4) | 否 |
MYSQL_COLLATION | 指定数据库默认排序规则(如utf8mb4_general_ci) | 否 |
通过mysql客户端工具连接容器内MariaDB(需确保主机3306端口已映射):
bashmysql --protocol=tcp -u root -p<password>
-u root:使用root用户登录(或指定MYSQL_USER创建的用户)。-p<password>:指定密码(-p与密码间无空格)。建议首次登录后修改root密码(若通过MYSQL_ROOT_PASSWORD设置了自定义密码,可跳过此步骤):
bashmysqladmin --protocol=tcp -u root -p<old_password> password <new_password>
登录数据库后,可执行标准SQL命令操作,例如创建测试表:
sqlCREATE TABLE test ( name VARCHAR(10), owner VARCHAR(10), species VARCHAR(10), birth DATE, death DATE );
centos/mariadb-101-centos7。MYSQL_ROOT_PASSWORD为必填项,请勿使用弱密码,建议通过环境变量文件或密钥管理工具注入密码,避免明文暴露。manifest unknown 错误
TLS 证书验证失败
DNS 解析超时
410 错误:版本过低
402 错误:流量耗尽
身份认证失败错误
429 限流错误
凭证保存错误
来自真实用户的反馈,见证轩辕镜像的优质服务