使用 Docker 快速部署MySQL8
在 Docker 环境下,我们可以轻松部署最新版的 MySQL (8.0+)。。
- 拉取最新的 MySQL 镜像
docker pull mysql:8.0.23
如果不指定版本标签,默认会拉取 latest 版本。
2. 准备宿主机目录
为了保证数据的持久化和配置的灵活性,我们需要在宿主机(物理机)上创建目录,用于挂载 MySQL 的数据和配置文件。
mkdir -p /docker/mysql/conf /docker/mysql/data
/docker/mysql/conf:用于存放 MySQL 的配置文件 (my.cnf)。
/docker/mysql/data:用于存放 MySQL 的数据文件。
3. 初始化配置文件
为了让 MySQL 容器能使用外部配置文件,我们需要先在宿主机的配置目录中创建一个 my.cnf 文件。您无需手动创建一个临时容器来拷贝此文件,可以直接创建一个空的配置文件,Docker 启动时会自动使用默认配置。如果后续需要自定义配置,再编辑此文件即可。
touch /docker/mysql/conf/my.cnf
注意:如果需要自定义配置,例如设置字符集,可以向此文件添加内容,如:
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
4. 创建并启动 MySQL 容器
现在,我们可以使用一条命令来完成容器的创建和启动。这里我们采用官方推荐的 --mount 参数进行挂载,它的语法更清晰、功能也更强大。
docker run -d \
--name mysql-server \
-p 3306:3306 \
-e MYSQL_ROOT_PASSWORD=your_password \
--mount type=bind,src=/docker/mysql/data,dst=/var/lib/mysql \
--mount type=bind,src=/docker/mysql/conf/my.cnf,dst=/etc/mysql/my.cnf \
--restart=always \
mysql
命令参数解析:
-d: 后台模式运行容器。
--name mysql-server: 为容器指定一个清晰的名称。
-p 3306:3306: 将宿主机的 3306 端口映射到容器的 3306 端口。
-e MYSQL_ROOT_PASSWORD=your_password: [重要] 设置 MySQL 的 root 用户密码,请务必替换为您自己的强密码。
--mount type=bind,src=...,dst=...: 这是官方推荐的挂载方式。
src=/docker/mysql/data,dst=/var/lib/mysql: 将宿主机的数据目录挂载到容器内的数据存储位置。
src=/docker/mysql/conf/my.cnf,dst=/etc/mysql/my.cnf: 将宿主机的配置文件挂载到容器内的配置文件位置。
--restart=always: 设置容器总是在退出时自动重启,保证服务的高可用性。
mysql: 指定使用的镜像。
提示:--mount 和 -v 都可以实现目录挂载,但 --mount 是 Docker 官方目前更推荐的语法,因为它更明确和易于理解。您提供的 -v /docker/mysql/data:/var/lib/mysql 写法也是完全有效的。
- 验证运行状态
 最后,检查一下容器是否成功运行。
docker ps
 
                     
                    
                 
                    
                 
                
            
         
         浙公网安备 33010602011771号
浙公网安备 33010602011771号