一、基础概念速览
1. 什么是 Docker?
Docker 是开源容器化平台,核心价值在于 “环境一致性”—— 通过容器打包应用及所有依赖,实现开发、测试、生产环境的无缝迁移。容器轻量、可移植、资源占用低,是 DevOps 和微服务架构的核心工具。
2. 什么是 MySQL?
MySQL 是主流关系型数据库管理系统,采用分表存储数据的设计,兼顾查询速度与灵活性,广泛应用于各类 Web 应用、项目开发中。
二、Docker 中修改 MySQL 密码的 3 种实用方法
在容器化部署场景中,修改 MySQL 密码是高频操作,以下方法覆盖不同使用场景,新手也能快速上手:
方法 1:通过 MySQL Shell 直接修改(适用于已运行容器)
1、进入目标 MySQL 容器:
执行 docker exec -it mysql -u root -p,替换 为你的容器名称,输入当前 root 密码后进入 MySQL 命令行。
2、执行密码修改 SQL:
sql
ALTER USER 'root'@'%' IDENTIFIED BY 'newpassword'; -- 替换 newpassword 为新密码
FLUSH PRIVILEGES; -- 刷新权限使其生效
注:‘root’@‘%’ 表示允许 root 用户从任意主机访问,若需限制访问主机,可将 % 替换为具体 IP。
方法 2:通过环境变量创建容器时设置初始密码(适用于新实例)
若需新建 MySQL 容器并直接指定密码,可通过 -e 参数配置环境变量:
bash
docker run --name mymysql -e MYSQL_ROOT_PASSWORD=newpassword -d mysql:latest
参数说明:–name 指定容器名称,-d 表示后台运行,该命令会直接创建一个已设置好 root 密码的 MySQL 实例。
方法 3:通过 SQL 文件批量初始化(适用于多容器 / 复杂场景)
1、本地创建 SQL 脚本(例:init.sql),写入密码修改逻辑:
sql
ALTER USER 'root'@'%' IDENTIFIED BY 'newpassword';
FLUSH PRIVILEGES;
2、启动容器时挂载脚本,实现自动执行:
bash
docker run --name mymysql -v /本地路径/init.sql:/docker-entrypoint-initdb.d/init.sql -e MYSQL_ROOT_PASSWORD=oldpassword -d mysql:latest
原理:MySQL 容器启动时会自动执行 /docker-entrypoint-initdb.d/ 目录下的 SQL 文件,适合批量初始化多个实例或搭配其他初始化命令使用。
三、容器与虚拟机技术对比
虚拟机与容器并非对立关系,需根据场景选择:
- 虚拟机:隔离性强,可完全控制系统环境,适合对安全性、独立性要求高的场景(如运行多个不同系统的服务)。
- 容器:轻量级、启动快、资源占用低,适合微服务架构、云原生应用,能大幅提升部署和扩展效率。
核心差异在于 “资源开销” 和 “灵活性”—— 容器共享宿主机内核,无需模拟完整操作系统,而虚拟机需占用独立硬件资源,因此在大规模部署场景下,容器的优势更明显。
四、技术资源补充
在容器化运维、数据库管理过程中,实用工具能大幅提升效率。我整理了一批常用资源,包括 Docker 管理工具、系统测速工具、日志分析工具及镜像制作教程,覆盖运维工程师和后端开发的日常需求。如果需要,可留言获取,助力大家简化运维流程、降低操作成本。
以上方法均经过实际测试,适用于大多数场景。如果在操作中遇到问题,欢迎在评论区交流讨论~
545

被折叠的 条评论
为什么被折叠?



