【docker】使用Docker安装和配置MySQL数据库

目录

一、前言

二、安装操作

1、准备环境和安装Docker

2、拉取MySQL镜像

3、创建MySQL容器 

4、连接到MySQL容器

5、配置和管理数据库

6、停止和删除容器

三、实战:安装MySQL

1、假设我们将容器删除

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实例,大大提高了灵活性和效率。 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

爱吃芋圆的兔子

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值