文章目录
- 1. 实战概述
- 2. 实战步骤
- 2.1 创建配置文件目录
- 2.2 创建Docker编排配置文件
- 2.3 利用docker-compose部署MySQL服务器
- 2.4 在Navicat里连接MySQL服务器
- 2.5 查看MySQL版本
- 2.6 创建数据库用于测试
- 2.7 进入MySQL容器查看数据库
- 2.8 停止并移除MySQL容器但保留命名卷
- 2.9 再次利用docker-compose启动MySQL容器
- 2.10 在Navicat里查看数据库是否还存在
- 2.11 停止并移除MySQL容器不保留命名卷
- 2.12 再次利用docker-compose启动MySQL容器
- 2.13 在Navicat里查看数据库是否还存在
- 3. 实战总结
1. 实战概述
- 本实战通过 Docker Compose 部署 MySQL 8.0 容器,配置端口映射、字符集、大小写不敏感及数据持久化,利用 Navicat 连接并验证数据库操作;通过
docker-compose down与--volumes参数对比演示了数据卷的保留与清除机制,完整展示了容器化数据库的部署、管理与数据持久化特性。
2. 实战步骤
2.1 创建配置文件目录
- 执行命令:
mkdir mysql_config

2.2 创建Docker编排配置文件
-
执行命令:
cd mysql-config

-
执行命令:
notepad docker-compose.yml,在记事本窗口里编写配置文件

services: mysql: image: mysql:8.0 container_name: mysql8.0 ports: - "3307:3306" command: - --default-authentication-plugin=mysql_native_password - --character-set-server=utf8mb4 - --collation-server=utf8mb4_general_ci - --explicit_defaults_for_timestamp=true - --lower_case_table_names=1 environment: - MYSQL_ROOT_PASSWORD=903213 - TZ=Asia/Shanghai volumes: - mysql8_0_data:/var/lib/mysql volumes: mysql8_0_data: {} -
配置说明:该配置使用 Docker Compose 启动 MySQL 8.0 容器,映射宿主机 3307 端口,设置 root 密码为
903213,启用兼容性认证插件、UTF8MB4 字符集及大小写不敏感表名,通过命名卷mysql8_0_data持久化数据,并指定时区为 Asia/Shanghai,适用于 Windows/Linux 环境。
2.3 利用docker-compose部署MySQL服务器
- 执行命令:
docker-compose up -d

- 结果说明:执行
docker-compose up -d后,Docker 成功创建网络、命名卷和容器,MySQL 8.0 容器已启动并运行在后台。网络mysql_config_default和卷mysql8_0_data均已创建,容器通过端口 3307 映射对外提供服务,数据持久化配置生效,系统可正常访问数据库。
2.4 在Navicat里连接MySQL服务器
- 启动Navicate

- 新建MySQL数据库连接,输入相关信息

- 单击【测试连接】按钮

- 单击【确定】按钮(说明:localhost可以改成宿主机的IP地址)

- 单击【确定】按钮

- 打开MySQL8.0数据库连接

2.5 查看MySQL版本
- 在查询窗口里执行语句:
select version();

2.6 创建数据库用于测试
- 执行语句:
create database test character set utf8mb4;

2.7 进入MySQL容器查看数据库
- 执行命令:
docker exec -it mysql8.0 /bin/bash,进入容器

- 执行命令:
mysql -uroot -p903213,进入MySQL客户端

- 执行语句:
show databases;,可以看到刚才在Navicat里创建的test数据库

- 执行命令:
exit,退出MySQL客户端

- 执行命令:
exit,退出容器

2.8 停止并移除MySQL容器但保留命名卷
- 执行命令:
docker-compose down

- 结果说明:执行
docker-compose down命令后,Docker 成功停止并移除了 MySQL 容器和相关网络。容器mysql8.0已被终止并从运行时环境中删除,网络mysql_config_default也被清理。命名卷mysql8_0_data默认保留,数据未被清除,确保下次启动时仍可恢复数据库内容。该操作实现了服务的优雅关闭与资源释放,符合容器化管理的最佳实践。 - 此时,Navicat创建的数据库连接MySQL8.0无法使用了~

2.9 再次利用docker-compose启动MySQL容器
- 执行命令:
docker-compose up -d

2.10 在Navicat里查看数据库是否还存在
- 你会发现
test数据库依然存在,因为移除容器时没有删除命名卷,所以数据依然保留

2.11 停止并移除MySQL容器不保留命名卷
- 执行命令:
docker-compose down --volumes

- 结果说明:执行
docker-compose down --volumes后,Docker 成功停止并删除了容器mysql8.0、网络mysql_config_default以及命名卷mysql8_0_data。该操作彻底清理了所有相关资源,包括持久化数据,适用于环境重置或完全卸载场景,确保无残留数据。
2.12 再次利用docker-compose启动MySQL容器
- 执行命令:
docker-compose up -d

- 结果说明:执行
docker-compose up -d后,Docker 成功创建网络、命名卷和容器,MySQL 8.0 容器已启动并运行在后台。网络mysql_config_default和卷mysql8_0_data均已创建,容器通过端口 3307 映射对外提供服务,数据持久化配置生效,系统可正常访问数据库。
2.13 在Navicat里查看数据库是否还存在
- 你会发现
test数据库不存在,因为移除容器时删除了命名卷,所以数据没有保留

3. 实战总结
- 本次实战详细演示了使用 Docker Compose 部署 MySQL 8.0 容器的全过程,包括创建配置文件目录、编写
docker-compose.yml文件以配置服务端口映射、字符集、大小写不敏感设置及数据持久化。通过执行docker-compose up -d命令成功启动容器,并利用 Navicat 进行数据库连接测试和基本操作验证,如查看 MySQL 版本、创建数据库等。此外,还探讨了如何通过docker-compose down和docker-compose down --volumes命令分别实现停止并移除容器时保留或删除数据卷的效果,展示了 Docker 数据管理的最佳实践。整个过程不仅帮助理解了 Docker Compose 的便捷性与灵活性,同时也强调了在容器环境中进行数据持久化的重要性,为后续开发工作提供了可靠的数据服务支持。通过这次实战,参与者能够掌握从部署到管理的全流程技能,提升了对容器化应用的理解与实际操作能力。
3220

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



