Docker mysql 把数据存储在本地目录

Docker mysql 把数据存储在本地目录,很简单,只需要映射本地目录到容器即可

1、加上-v参数

$ docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql 
 
 
  • 1

还可以指定配置文件

docker run -d -e MYSQL_ROOT_PASSWORD=admin --name mysql -v /data/mysql/my.cnf:/etc/mysql/my.cnf -v /data/mysql/data:/var/lib/mysql -p 3306:3306 mysql 
 
 
  • 1

这样,即可修改配置文件,还能把数据存在本地目录,一举两得,-v 参数可以多次使用,每次映射一个目录,通过这种方式,很容易进行配置。

### 如何在 Docker 中将主机目录挂载为 MySQL 数据卷 #### 创建项目目录结构 为了更好地管理文件,建议先创建一个专门用于项目的目录。例如,在 `/opt/workspace/docker` 下创建名为 `mysql` 的项目目录[^1]。 ```bash mkdir -p /opt/workspace/docker/mysql cd /opt/workspace/docker/mysql ``` #### 准备必要的配置文件和数据目录 通常情况下,会准备两个主要部分:一个是MySQL的配置文件夹,另一个是数据存储路径。可以按照如下方式操作: - **创建配置文件夹** 和 **初始化默认配置** 使用临时容器来获取标准配置模板是一个常见做法。启动一个带有特定版本标签(如5.7)的MySQL镜像实例,并将其命名为易于识别的名字比如 `temp-mysql-config`: ```bash docker run -d --name temp-mysql-config mysql:5.7 ``` 接着把该容器内的配置复制出来至本地对应位置 `$PWD/mysql/conf.d/`, 然后停止并移除这个临时容器: ```bash mkdir -p $PWD/mysql/conf.d/ docker cp temp-mysql-config:/etc/mysql/my.cnf $PWD/mysql/conf.d/ docker stop temp-mysql-config && docker rm temp-mysql-config ``` - **建立持久化数据保存空间** 同样地,在宿主机上定义好用来存放数据库实际内容的位置,这里假设为 `$PWD/mysql/data` : ```bash mkdir -p $PWD/mysql/data ``` #### 编写 Docker Compose 文件实现自动化部署 通过编写 `docker-compose.yml` 来简化整个过程,使得每次只需要执行一条命令就可以完成服务搭建。下面给出了一段示范性的 YAML 文档片段: ```yaml version: '3' services: db: image: mysql:5.7 container_name: custom_mysql_container environment: MYSQL_ROOT_PASSWORD: "your_password" volumes: - ./mysql/conf.d/:/etc/mysql/conf.d/ - ./mysql/data:/var/lib/mysql ports: - "3306:3306" ``` 这段配置指定了如何映射外部资源到内部环境变量以及端口转发规则;特别是 `-v` 参数实现了双向绑定——即允许对位于宿主机上的相应文件做出任何更改都会反映给正在运行的服务反之亦然[^2][^4]. #### 执行构建与验证 最后一步便是利用上述准备工作快速建立起所需的 MySQL 实例。进入包含有 `docker-compose.yml` 文件的工作区并通过简单的指令触发安装流程: ```bash docker-compose up -d ``` 这将会依据所提供的设定自动下载所需依赖项、应用自定义参数调整最终呈现出可正常工作的 MySQL Server 。此时可以通过连接工具测试访问新设立好的服务器节点确认一切运作良好[^5].
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值