1. 环境准备
准备好Linux系统机器,并安装好docker,阅读这篇文章前请先了解清楚docker的基本知识并且会熟悉运用docker的常用命令。学习docker基础知识可以参考这篇博文
安装好并启动docker后就可以开始安装mysql了
2. docker容器下安装mysql
执行以下命令直接下载mysql5.7版本镜像
#dokcer pull 镜像名:版本号docker pull mysql:5.7
安装好后再执行 docker images命令,查看到mysql5.7镜像则安装成功
此时,可以启动mysql,我们先按以下命令启动
# docker run -p 对外暴露的端口:mysql运行端口 --name 容器名称 -e MYSQL_ROOT_PASSWORD=mysql连接密码 -d 镜像名:版本号# -p 对外暴露的端口:mysql运行端口 # --name 容器名称 //镜像首次启动时会自动创建容器,需要给容器命名# -e MYSQL_ROOT_PASSWORD=mysql连接密码 //mysql镜像容器创建时必须设置连接密码,否则无法创建容器# -d 后台运行docker run -p 3315:3306 --name mysql5.7 \
-e MYSQL_ROOT_PASSWORD=asd123456 \
-d mysql:5.7
执行完后再执行docker ps命令查看容器是否启动成功,出现下图结果则启动成功
如果没有图上结果,则是启动失败,可以执行以下命令查看容器运行日志来排查
# docker logs --tail=行数 容器名称docker logs --tail=100 mysql5.7
启动成功后,由于mysql镜像已经开启了远程访问,因此我们可以直接在我们的物理机上通过数据库连接工具连接访问.
这里要注意的是,需要通过mysql镜像运行设置的对外暴露的端口去连接访问
3. mysql数据和配置挂载
以上操作只是创建了mysql镜像容器并且以默认配置启动,当容器被删除则数据和新加的配置全部清空。因此我们需要对数据持久化以及配置持久化到宿主机上。需要采用docker容器数据卷实,目录的挂载来实现
执行以下命令:
# 创建需要挂载的目录(自定义,这里只是举例,不一定要按照例子来)mkdir -p /usr/local/docker/mysql5.7/conf
mkdir -p /usr/local/docker/mysql5.7/data
mkdir -p /usr/local/docker/mysql5.7/log
# 停止mysql5.7容器(docker stop 容器id)docker stop mysql5.7
# 删除mysql5.7容器(docker rm 容器id)dockerrm mysql5.7
说明:mysql5.7容器再创建后不能用命令去挂载目录,只能通过修改配置文件才可以实现,修改会比较麻烦,这里就不细讲了。我们采用一种简单的方法,就是先把原来的容器删除,使用命令创建新容器并挂载指定目录
继续执行以下命令:
# -v 宿主机的被挂载路径:容器内需要挂载的路径docker run -p 3315:3306 --name mysql5.7 \
-v /usr/local/docker/mysql5.7/conf:/etc/mysql/mysql.conf.d \
-v /usr/local/docker/mysql5.7/log:/var/log/ \
-v /usr/local/docker/mysql5.7/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=asd123456 \
-d mysql:5.7
创建成功后,我们可以从宿主机上行查看华仔目录,比如以下结果则挂载成功
版权归原作者 Fly丶X 所有, 如有侵权,请联系我们删除。