目录
2、那么,我们如何确定是具名挂载还是匿名挂载,还是指定路径挂载?
一、前言
MySQL是一种流行的开源关系数据库管理系统,它提供了高性能、可靠性和易用性。使用Docker来安装和管理MySQL可以极大地简化配置和部署过程。本文将带你逐步完成在Docker中安装和配置MySQL数据库的过程。
二、安装操作
1、准备环境和安装Docker
确保你的系统中已经安装了Docker。如果没有,可以按照官方文档的指引安装Docker。在安装完成后,确保Docker服务已经启动。
2、拉取MySQL镜像
打开终端或命令行,运行以下命令拉取官方的MySQL镜像:
docker pull mysql:latest
3、创建MySQL容器
运行以下命令创建一个MySQL容器,同时指定密码和端口号:
docker run -d --name mysql-container -e MYSQL_ROOT_PASSWORD=yourpassword -p 3306:3306 mysql:latest
这将创建一个名为mysql-container
的容器,设置root用户的密码为yourpassword
,并将容器的3306端口映射到主机的3306端口。
4、连接到MySQL容器
使用以下命令连接到MySQL容器内部:
docker exec -it mysql-container mysql -u root -p
输入刚才设置的密码,即可进入MySQL命令行界面。
5、配置和管理数据库
在MySQL命令行界面中,你可以创建新的数据库、用户,执行SQL语句等。你可以使用标准的MySQL命令来管理数据库。
6、停止和删除容器
当不再需要MySQL容器时,可以停止并删除它:
docker stop mysql-container
docker rm mysql-container
三、实战:安装MySQL
思考:MySQL的数据持久化的问题
#获取镜像
docker pull mysql:5.7
#运行容器,需要做数据挂载
#安装启动MySQL,需要配置密码(docker Hub)
#官方测试
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
#启动
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
--name 容器名字
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql:5.7
#启动成功之后,我们在本地使用sqlyog来接测试一下
#sqlyog-连接到服务器的3310 ---3310和容器内的3306映射,这个时候我们就可以连接上了!
#在本地测试创建一个数据库,查看一下我们映射的路径是否OK
1、假设我们将容器删除
发现我们挂载到本地的数据库依旧没有丢失,这就实现了容器数据持久化功能!!!
#匿名挂载
-v 容器内路径
docker run -d -P --name nginx01 -v /ect/nginx nginx
#查看所有volume(卷)的情况
docker volume ls
local 9f3824568faal78afcce54db0be99d4ddd6870bcece72d2b7ed061
#这里发现,这种就是匿名挂载,我们在-v的时候只写了容器内的路径,没有写容器外的路径
#具名挂载
#通过-v 卷名:容器内路径
#查看一下这个卷
所有的docker容器内的卷,没有指定目录的情况下都是在'/var/lib/docker/volumes/xxxx/_data'
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的具名挂载!
2、那么,我们如何确定是具名挂载还是匿名挂载,还是指定路径挂载?
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径::容器内路径 #指定路径挂载
四、拓展
#通过 -v 容器内路径,ro rw 改变读写权限
ro readonly #只读
rw readwrite #可读可写
#一旦这个设置了容器权限,容器对我们挂载出来的内容就有限定了
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
#ro 只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作的
五、总结
通过Docker安装和配置MySQL数据库,你可以避免复杂的配置和依赖问题,快速搭建一个数据库环境。这个过程简单明了,适用于开发、测试和学习使用。使用Docker容器,你可以随时创建、启动、停止和删除MySQL实例,大大提高了灵活性和效率。