Docker搭建MySQL并挂载数据的全过程
记录 Docker 搭建 MySQL 并挂载数据过程,搭建过程参考自 Docker Hub 。
一、Docker搭建MySQL并挂载数据
1、首先安装好 Docker,不知道怎么安装的可以看下 CentOS7安装Docker初体验 。
2、下载 MySQL5.7 镜像。
?1 | docker pull mysql:5.7 |
3、创建容器并挂载数据。
?1 2 3 4 5 6 7 8 9 10 | docker run -d --restart=always --name mysql \ - v /itwxe/dockerData/mysql/data : /var/lib/mysql \ - v /itwxe/dockerData/mysql/conf : /etc/mysql \ - v /itwxe/dockerData/mysql/log : /var/log/mysql \ -p 3306:3306 \ -e TZ=Asia /Shanghai \ -e MYSQL_ROOT_PASSWORD=123456 \ mysql:5.7 \ --character- set -server=utf8mb4 \ --collation-server=utf8mb4_general_ci |
参数说明:
?1 2 3 4 5 6 7 | - v /itwxe/dockerData/mysql/data : /var/lib/mysql :将数据文件夹挂载到主机 - v /itwxe/dockerData/mysql/conf : /etc/mysql :将配置文件夹挂在到主机,可以在宿主机放一份自定义 my.cnf文件,那么容器就会按自定义配置启动 - v /itwxe/dockerData/mysql/log : /var/log/mysql :将日志文件夹挂载到主机 -p 3306:3306:将容器的3306端口映射到主机的3306端口 -e MYSQL_ROOT_PASSWORD=123456:初始化123456用户的密码 --character- set -server=utf8mb4:设置字符集 --collation-server=utf8mb4_general_ci:排序方式 |
4、进入 MySQL 容器内部。
?1 | docker exec -it mysql /bin/bash |
5、登录 MySQL。
?1 | mysql -uroot -p123456 |
6、查看字符集是否生效。
?1 | show variables like 'character_set_%' ; |
二、挂载是否生效
1、上传备份 sql 到宿主机,复制宿主机备份 sql 到容器。
?1 | docker cp /itwxe/dockerData/sunny .sql mysql:/ |
2、进入 mysql 容器内部,导入sql。
?1 2 3 4 5 6 7 | docker exec -it mysql /bin/bash mysql -uroot -p123456 create database sunny; use sunny; source /sunny .sql; |
3、数据导入成功可以查询后,删除容器,并重新用命令创建容器,查看数据存在。
?1 | docker stop mysql && docker rm mysql |
使用上面的命令重新创建容器,查看数据是否正常,可以看到数据正常挂载查询,此处演示的数据正常挂载保存宿主机。
其他
1.可以启动多个MySQL服务,因为我们启动的是容器,容器可以有多个,只要容器名字映射段端口不一样就可以了,例如:
?1 | $ sudo docker run --name dbdb -e MYSQL_ROOT_PASSWORD=123456 -p 6666:3306 -d mysql |
2.查看所有容器(启动状态或者关闭状态)
?1 | $ sudo docker ps -a |
3.启动和关闭容器
启动命令:
?1 2 | $ sudo docker start pwc-mysql // 通过指定容器名字 $ sudo docker start 73f8811f669e // 通过指定容器ID |
关闭命令:
?1 2 | $ sudo docker stop pwc-mysql // 通过指定容器名字 $ sudo docker stop 73f8811f669e // 通过指定容器ID |
总结
到此这篇关于Docker搭建MySQL并挂载数据的文章就介绍到这了,更多相关Docker搭建MySQL挂载数据内容请搜索服务器之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持服务器之家!
原文链接:https://itwxe.com/posts/53489f6d.html
1.本站遵循行业规范,任何转载的稿件都会明确标注作者和来源;2.本站的原创文章,请转载时务必注明文章作者和来源,不尊重原创的行为我们将追究责任;3.作者投稿可能会经我们编辑修改或补充。