docker搭建部署mysql并挂载指定目录

发布时间:2024年01月10日

Docker是一种轻量级、可移植的容器化平台,可以简化应用程序的部署和管理。在本文中,我们将探讨如何使用Docker来搭建和部署MySQL数据库,并将数据和配置文件挂载到外部目录,以实现数据持久化和方便的配置管理。

1: 安装Docker

首先,确保你的系统上已经安装了Docker。你可以根据官方文档安装适用于你系统的Docker版本

2、拉取mysql镜像

docker search mysql  查询镜像  可省略这一步

docker pull mysql    拉取镜像,不带版本默认拉取最新版本  指定版本如docker pull ubuntu/mysql

在这里插入图片描述

3、创建待挂载文件

在这里插入图片描述

4、创建MySQL容器

docker run  --restart=always --privileged=true -p 3306:3306 --name mysql -v /usr/mysqldata/log:/var/log/mysql -v /usr/mysqldata/data:/var/lib/mysql -v /usr/mysqldata/conf:/etc/mysql  -v /usr/mysqldata/my.cnf:/etc/mysql/my.cnf -e MYSQL_ROOT_PASSWORD=20240110 -d mysql

命令解释

docker run: 运行Docker容器的命令。

--restart=always: 指定容器在退出时总是重新启动。这意味着,无论容器是正常退出还是异常退出,Docker将自动重新启动这个容器。

--privileged=true: 赋予容器特权,允许它在主机上执行一些敏感操作,这通常是出于一些特殊需求的考虑,但需要注意潜在的安全风险。

-p 3306:3306: 将主机的端口3306映射到容器的端口3306,这样外部系统可以通过主机的3306端口访问MySQL服务。

--name mysql: 为容器指定一个名称,这里是"mysql"-v /usr/mysqldata/log:/var/log/mysql: 将主机上的/usr/mysqldata/log目录映射到容器内的/var/log/mysql目录,用于存储MySQL的日志文件。

-v /usr/mysqldata/data:/var/lib/mysql: 将主机上的/usr/mysqldata/data目录映射到容器内的/var/lib/mysql目录,用于存储MySQL的数据文件。

-v /usr/mysqldata/conf:/etc/mysql: 将主机上的/usr/mysqldata/conf目录映射到容器内的/etc/mysql目录,用于存储MySQL的配置文件。

-v /usr/mysqldata/my.cnf:/etc/mysql/my.cnf: 将主机上的/usr/mysqldata/my.cnf文件映射到容器内的/etc/mysql/my.cnf文件,这是MySQL的配置文件。

-e MYSQL_ROOT_PASSWORD=20240110: 设置MySQL的root用户密码为"20240110"-d mysql: 以后台(detached)模式运行MySQL容器。

挂载外部目录的理由:

  • 数据持久性和灵活性。
  • 容器中MySQL数据的易备份和恢复。

如当容器宕机或者不小心移除,可重新起一个容器并挂载之前的文件,之前的数据依然存在。

5、验证MySQL容器(查看容器情况)

docker ps -a

-a 选项表示显示所有容器,包括已经停止运行的容器。
这个命令会列出所有的Docker容器,包括正在运行的和已经停止的。对于每个容器,你将看到容器的ID、名称、创建时间、状态、端口映射等信息。

docker ps

这个命令默认只显示正在运行的容器。
类似于docker ps -a,但只列出正在运行的容器,而不包括已经停止的容器。

在这里插入图片描述
因为我是之前就搭建好的,这里可以看到status已经运行六个月了

然后就可以使用navicat进行连接啦
在这里插入图片描述
点击测试连接显示成功就可以在项目中使用了

docker拉镜像、创建容器、停止容器、移除容器、构建镜像
docker搭建rabbitmq
docker部署showdoc详细步骤
在docker中搭建部署clickhouse
docker搭建mongodb并挂载外部文件
docker搭建部署minio 存储文件

文章来源:https://blog.csdn.net/qq_41973632/article/details/135495815
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。