MariaDB数据库管理系统是MySQL的一个分支,主要由开源社区在维护,采用GPL授权许可 MariaDB的目的是完全兼容MySQL,包括API和命令行,使之能轻松成为MySQL的代替品。在存储引擎方面,使用XtraDB来代替MySQL的InnoDB。 MariaDB由MySQL的创始人Michael Widenius主导开发,他早前曾以10亿美元的价格,将自己创建的公司MySQL AB卖给了SUN,此后,随着SUN被甲骨文收购,MySQL的所有权也落入Oracle的手中。MariaDB名称来自Michael Widenius的女儿Maria的名字。
1.拉取mariadb11.1的镜像
代码语言:javascript复制docker pull mariadb
2.查看镜像
3.新建数据库目录
用来挂载容器的目录及数据
代码语言:javascript复制mkdir -p /data/mariadb/data
4.创建mariadb容器
代码语言:javascript复制docker run --name mariadb -p 3306:3306 -e MYSQL_ROOT_PASSWORD=XXX -v /data/mariadb/data:/var/lib/mysql --security-opt seccomp=unconfined -d mariadb:11.1
参数说明
- name:启动后容器的名字
- p:容器端口映射到服务器:第一个参数是主机端口,第二个是容器端口
- e:是传递给容器内的参数,比如这里加了 MARIADB_ROOT_PASSWORD 是指容器启动后,容器内部的mariadb的root密码为123456
- v:挂载数据的目录,第一个指主机的目录,第二个指容器的目录
- d: 是镜像的名字和版本号,默认不加会使用latest最新版本
注意,这里如果不加参数 --security-opt seccomp=unconfined 则会遇到报错
代码语言:javascript复制docker logs mariadb
2023-11-21 07:05:55 00:00 [Note] [Entrypoint]: Entrypoint script for MariaDB Server 1:11.1.3 maria~ubu2204 started.
2023-11-21 07:05:55 00:00 [ERROR] [Entrypoint]: mariadbd failed while attempting to check config
command was: mariadbd --verbose --help
Can't initialize timers
5.查看mariadb容器状态
代码语言:javascript复制docker ps -a |grep mariadb
a182bd4523 mariadb:11.1 "docker-entrypoint.s…" 11 minutes ago Up 11 minutes 0.0.0.0:3306->3306/tcp mariadb
6.进入mariadb数据库中
代码语言:javascript复制docker exec -it mariadb mariadb -uroot -pXXX你的密码
Welcome to the MariaDB monitor. Commands end with ; or g.
Your MariaDB connection id is 3
Server version: 11.1.3-MariaDB-1:11.1.3 maria~ubu2204 mariadb.org binary distribution
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or 'h' for help. Type 'c' to clear the current input statement.