使用docker安装mysql教程,前提是我们对docker常用的指令比较熟悉
1.下载mysql镜像
:
docker从仓库中拉取最新版的mysql镜像,如果没加标签的话,默认获取最新的版本latest
docker pull mysql
- 创建本地路径并挂载Docker内数据
创建本地文件夹
mkdir -p /root/docker/mysql/conf && mkdir -p /root/docker/mysql/data and mkdir -p /root/docker/mysql/logs
- 我们先临时启动一个mysql容器,从该容器中拷贝处理mysql的配置文件,my.cnf.
docker run -it --name test_mysql mysql /bin/bash
-i: 表示交互式运行容器(就是创建容器后,马上会启动容器,并进入容器 )通常和-t一块连用
-t:启动后会进入其容器命令行, 通常与 -i 同时使用; 加入 -it 两个参数后,容器创建就能登录进去。即
分配一个伪终端。
--name 表示我们为容器指定一个名称。
- 进入到docker容器中确定当前配置文件的路径,并且拷贝到宿主机上。
查找Docker内,MySQL配置文件my.cnf的位置.
mysql --help | grep my.cnf 将测试容器里 MySQL 的配置文件复制到该路径。日后需改配置,直接在挂载路径的配置文件上修改即可。docker容器中my.cnf可能是个软链接无法直接复制到宿主机,具体指向路径需使用ls -l自行查看。
mysql --help | grep my.cnf

拷贝文件到宿主机上:
docker cp test_mysql:/etc/mysql /root/docker/mysql/conf
在宿主机的/root/docker/mysql/conf可以看到对应的docker文件。

5. 停止并且删除临时创建的mysql容器的mysql容器 test_mysql
docker rm -f test_mysql
删除临时创建的mysql容器
- 挂载数据卷以及配置文件 并且启动mysql
在宿主机上先进入到第二步创建的mysql的文件夹中.然后执行
echo $PWD

7.使用docker 命令启动mysql容器
docker run --name mysql2 -v $PWD/conf:/etc/mysql/conf.d -v $PWD/logs:/logs -v $PWD/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -d -i -p 3306:3306 mysql:latest
-p 3306:3306:将容器的 3306 端口映射到主机的 3306 端口。
-v -v $PWD/conf:/etc/mysql/conf.d:将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf。
-v $PWD/logs:/logs:将主机当前目录下的 logs 目录挂载到容器的 /logs。
-v $PWD/data:/var/lib/mysql :将主机当前目录下的data目录挂载到容器的 /var/lib/mysql 。
-e MYSQL_ROOT_PASSWORD=123456:初始化 root 用户的密码。
8.进入到容器内部:
docker exec -it mysql2
- 登录mysql:使用初始化密码登录123456
mysql -uroot -p
- 修改允许远程连接:
# 选择使用数据库mysql
use mysql;
# 查看user表中的数据
select host,user from user;
# 修改root用户远程连接:
update user set host = "%" where user = "root";
# 刷新权限
flush privileges;
# 退出mysql;
exit;
- 对外开放linux的3306的端口号
# 开放端口号
firewall-cmd --add-port=3306/tcp --permanent
# 重新启动防火墙
systemctl restart firewalld
12.重新启动mysql容器:
docker restart mysql2
本文档详述了如何在Docker中安装MySQL,包括拉取镜像、创建数据卷、配置my.cnf文件、启动及远程连接MySQL的步骤,确保数据库持久化和允许远程访问。

7629

被折叠的 条评论
为什么被折叠?



