Ubuntu 虚拟机 Docker 与 MySQL 8.0.42 部署指南
1. 背景与目标本指南旨在指导用户在 Ubuntu Linux 虚拟机上通过 Docker 容器化技术快速部署 MySQL 8.0.42 数据库。相比传统安装方式Docker 部署具有环境隔离、配置简单、易于迁移和清理的优势能够极大降低环境配置的复杂度。2. 环境确认在执行安装前请确认当前系统为Ubuntu。判断依据终端提示符格式为usernamehostname:~$且系统使用apt作为包管理器若使用yum则为 CentOS/RHEL不适用本指南。权限要求后续命令均需使用sudo或root权限执行。3. 安装 Docker 引擎3.1 安装依赖包首先安装必要的工具允许apt通过 HTTPS 使用仓库sudo apt update sudo apt install -y apt-transport-https ca-certificates curl software-properties-common3.2 添加 Docker 软件源为确保下载速度建议使用国内阿里云镜像源1. 添加 GPG 密钥curl -fsSL https://mirrors.aliyun.com/docker-ce/linux/ubuntu/gpg | sudo gpg --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg2. 添加软件源echo deb [arch$(dpkg --print-architecture) signed-by/usr/share/keyrings/docker-archive-keyring.gpg] https://mirrors.aliyun.com/docker-ce/linux/ubuntu $(lsb_release -cs) stable | sudo tee /etc/apt/sources.list.d/docker.list /dev/null3.3 安装 Docker更新索引并安装 Docker 引擎sudo apt update sudo apt install -y docker-ce docker-ce-cli containerd.io3.4 启动与自启sudo systemctl start docker sudo systemctl enable docker3.5 配置镜像加速器关键步骤国内网络直接访问 Docker Hub 可能会遇到connection refused或超时问题必须配置加速器sudo mkdir -p /etc/docker sudo tee /etc/docker/daemon.json -EOF { registry-mirrors: [ https://docker.m.daocloud.io, https://docker.1ms.run ] } EOF重启 Docker 使配置生效sudo systemctl daemon-reload sudo systemctl restart docker3.6 验证安装运行测试容器若输出Hello from Docker!则安装成功sudo docker run hello-world4. 部署 MySQL 8.0.424.1 拉取指定版本镜像sudo docker pull mysql:8.0.424.2 启动 MySQL 容器执行以下命令一键启动数据库服务sudo docker run -d \ --name mysql8 \ -p 3306:3306 \ -e TZAsia/Shanghai \ -e MYSQL_ROOT_PASSWORD123456 \ --restartalways \ mysql:8.0.42参数说明参数说明-d后台运行容器--name mysql8指定容器名称为mysql8-p 3306:3306端口映射宿主机 3306 - 容器 3306-e TZAsia/Shanghai设置容器时区为上海-e MYSQL_ROOT_PASSWORD设置 root 用户密码示例为123456--restartalways虚拟机重启后自动启动容器4.3 验证运行状态sudo docker ps确认mysql8容器的STATUS为Up且PORTS显示0.0.0.0:3306-3306/tcp。5. 客户端连接指南在 Windows 物理机上使用 Navicat、DBeaver 或 IDEA 等工具连接主机 (Host)虚拟机 IP 地址在虚拟机执行ip addr查看端口 (Port)3306用户名 (User)root密码 (Password)123456或启动时设置的密码6. 常见问题与注意事项6.1 数据持久化重要默认情况下容器删除后数据会丢失。生产环境或长期开发建议挂载数据卷# 示例将数据挂载到宿主机 /opt/mysql/data sudo docker run -d \ --name mysql8 \ -p 3306:3306 \ -e TZAsia/Shanghai \ -e MYSQL_ROOT_PASSWORD123456 \ -v /opt/mysql/data:/var/lib/mysql \ --restartalways \ mysql:8.0.426.2 网络报错处理若拉取镜像时出现dial tcp ... connection refused检查是否已配置/etc/docker/daemon.json。执行sudo systemctl restart docker重启服务。检查虚拟机网络模式是否为 NAT 或桥接确保能访问外网。6.3 容器管理常用命令停止容器sudo docker stop mysql8启动容器sudo docker start mysql8查看日志sudo docker logs mysql8删除容器sudo docker rm -f mysql8