docker maradb 安装

mariadb

一、拉取镜像

docker pull mariadb:latest

二、运行容器

2.1、创建容器

docker run --name testDb -p 10086:3306 -v e:/docker_file/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:latest mysqld --innodb-flush-method=fsync

–name testDb ==> 设置容器别名为MariaDB,这样就可以使用别名启动\停止容器
-p 3307:3306 ==> 将主机的10086端口映射到容器的3306端口
-v e:/docker_file/mariadb:/var/lib/mysql ==> 将主机的e:/docker_file/mariadb目录挂载为容器的mariadb的数据库存储目录
-e MYSQL_ROOT_PASSWORD=123456 ==> 设置root密码为123456
d ==> 后台守护进程启动容器
mariadb:latest ==> 第一步拉取的镜像
mysqld –innodb-flush-method=fsync ==> 处理windows下初始化容器失败的问题,详情见4.2部分

这样就可以通过主机的10086端口访问数据库了

2.2、进入容器

如果希望进入mariadb容器

docker exec -it 容器别名\容器id bash

这样就可以进入容器查看配置了

三、启动\停止容器

docker start testDb
docker stop testDb

四、常见错误

4.1、获取日志

docker logs -f -t --tail 10 xxx # 获取xxx容器的最后10行日志

4.2、InnoDB: The Auto-extending innodb_system data file

参考地址
1、删除数据库挂载目录下的所有文件,如:我这是e:/docker_file/mariadb,则需要将该目录下的所有文件删除
2、删除容器
3、创建mariadb容器时添加以下命令

mysqld --innodb-flush-method=fsync
mysqld --innodb-flush-method=fsync --innodb-use-native-aio=0 # 如果上述命令失败,则使用这个

最终创建容器的命令为:

docker run --name testDb -p 10086:3306 -v e:/docker_file/mariadb:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d mariadb:latest mysqld --innodb-flush-method=fsync