docker搭建部署mysql并挂载指定目录
作者:mmseoamin日期:2024-04-27

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

1: 安装Docker

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

2、拉取mysql镜像

docker search mysql  查询镜像  可省略这一步
docker pull mysql    拉取镜像,不带版本默认拉取最新版本  指定版本如docker pull ubuntu/mysql

docker搭建部署mysql并挂载指定目录,在这里插入图片描述,第1张

3、创建待挂载文件

docker搭建部署mysql并挂载指定目录,在这里插入图片描述,第2张

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,但只列出正在运行的容器,而不包括已经停止的容器。
    

    docker搭建部署mysql并挂载指定目录,在这里插入图片描述,第3张

    因为我是之前就搭建好的,这里可以看到status已经运行六个月了

    然后就可以使用navicat进行连接啦

    docker搭建部署mysql并挂载指定目录,在这里插入图片描述,第4张

    点击测试连接显示成功就可以在项目中使用了

    docker拉镜像、创建容器、停止容器、移除容器、构建镜像

    docker搭建rabbitmq

    docker部署showdoc详细步骤

    在docker中搭建部署clickhouse

    docker搭建mongodb并挂载外部文件

    docker搭建部署minio 存储文件