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

左手的ㄟ右手 2023-10-11 20:16 25阅读 0赞

目录

一、前言

二、安装操作

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镜像:

  1. docker pull mysql:latest

3、创建MySQL容器

运行以下命令创建一个MySQL容器,同时指定密码和端口号:

  1. 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容器内部:

  1. docker exec -it mysql-container mysql -u root -p

输入刚才设置的密码,即可进入MySQL命令行界面。

5、配置和管理数据库

在MySQL命令行界面中,你可以创建新的数据库、用户,执行SQL语句等。你可以使用标准的MySQL命令来管理数据库。

6、停止和删除容器

当不再需要MySQL容器时,可以停止并删除它:

  1. docker stop mysql-container
  2. 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、假设我们将容器删除

0856530c819f8f7a1f52fae72a21e52c.png

发现我们挂载到本地的数据库依旧没有丢失,这就实现了容器数据持久化功能!!!

#匿名挂载

-v 容器内路径

docker run -d -P —name nginx01 -v /ect/nginx nginx

#查看所有volume(卷)的情况

docker volume ls

local 9f3824568faal78afcce54db0be99d4ddd6870bcece72d2b7ed061

#这里发现,这种就是匿名挂载,我们在-v的时候只写了容器内的路径,没有写容器外的路径

#具名挂载

e43158737f6e26b3d0e938d1af2b0683.png

#通过-v 卷名:容器内路径

#查看一下这个卷

c158b613fcacc7fc5b23f9532dc1a727.png

所有的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 条评论,25人围观)

还没有评论,来说两句吧...

相关阅读