使用 docker 安装 mariadb,并挂载本地目录到容器中
最近开始玩 docker,并尝试把自己常用的服务都用 docker 部署,这里记录一下我 使用 docker 安装 mariadb 的过程
文章转载自:使用 docker 安装 mysql,并挂载本地目录到容器中
拉取镜像
# 默认拉取最新的镜像
docker pull mariadb
# 查看镜像
docker images
提取 mariadb 配置数据
创建一个临时的 mariadb
docker run --rm \
--name mariadbTmp \
-it \
-v /home/arch/mariadb/:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \
mariadb \
/bin/bash
# 命令说明:
# 1. -v /home/arch/mariadb/:/var/lib/mysql 将主机目录//home/arch/mariadb/映射到Docker中的/var/lib/mysql目录
# 2. -- rm 退出后就删除该容器
# 3. -it 交互模式
# 4. /bin/bash 进入 bash 命令模式
复制出 docker 中的配置文件
复制 docker 容器中的配置到/var/lib/mysql 目录中,也就是/home/arch/mariadb 中,因为这两个目录已经作了映射
cp /etc/mysql/my.cnf /var/lib/mysql
cp -R /etc/mysql/conf.d/ /var/lib/mysql/
cp -R /etc/mysql/mariadb.conf.d/ /var/lib/mysql/
# 最后exit退出容器
exit
# 这之后可以根据自己的需求,导/home/arch/mariadb 目录中修改 mysql 配置
运行镜像
docker run \
--name mariadb \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=123456 \
-m 512M --memory-swap=1024M \
-v /home/arch/mariadb/data:/var/lib/mysql \
-v /home/arch/mariadb/my.cnf:/etc/mysql/my.cnf \
-v /home/arch/mariadb/conf.d:/etc/mysql/conf.d \
-v /home/arch/mariadb/mariadb.conf.d:/etc/mysql/mariadb.conf.d \
-d mariadb
# -v 挂载本地目录到docker中
# -d 表示以守护进程模式运行
# -m 限制容器可以使用的内存
进入运行着的 mariadb 容器
## 进入容器
# 这里可以使用上面定义的容器名 mariadb,也可已使用容器id
# docker ps 查看容器id
docker exec -it mariadb /bin/bash
## 下面就是在容器内部操作了
mysql -uroot -p
## 输入密码进入mariadb
mysql> show databases;
+--------------------+
| Database |
+--------------------+
| information_schema |
| mysql |
| performance_schema |
| sys |
+--------------------+
4 rows in set (0.00 sec)
mysql> exit