在 Ubuntu 下通过 Docker 部署 MySQL 服务器

引言

Docker 是一个开源的容器化平台,能够让开发者将应用程序及其依赖打包成一个轻量级的、可移植的容器。它提供了对软件环境的一致性,极大地简化了应用的开发、测试和部署过程。MySQL 是一个流行的开源关系型数据库管理系统,支持 SQL 语言,广泛应用于各种项目中。将 MySQL 部署在 Docker 容器中,不仅可以简化安装流程,还能方便地进行版本管理与迁移。接下来,我们将详细介绍如何在 Ubuntu 系统下通过 Docker 部署 MySQL 服务器。

部署步骤

1. 安装 Docker

首先,确保你的系统上安装了 Docker。可以通过以下命令安装 Docker:

复制代码
sudo apt update
sudo apt install docker.io

安装完成后,启动 Docker 服务并设置为开机自启:

复制代码
sudo systemctl start docker
sudo systemctl enable docker

2. 拉取 MySQL 镜像

接下来,我们需要从 Docker Hub 拉取 MySQL 镜像。这里我们使用官方的 MySQL 镜像:

复制代码
sudo docker pull mysql:latest

3. 创建 MySQL 容器

现在,我们可以创建一个 MySQL 容器了。以下命令创建一个名为 my_mysql 的 MySQL 容器,并设置根密码为 your_password(请根据需要更改密码):

复制代码
sudo docker run --name my_mysql -e MYSQL_ROOT_PASSWORD=your_password -d mysql:latest
  • --name my_mysql:指定容器的名称
  • -e MYSQL_ROOT_PASSWORD=your_password:设置 MySQL 的 root 用户密码
  • -d:让容器在后台运行

4. 访问 MySQL 容器

可以通过以下命令进入 MySQL 容器并访问 MySQL 数据库:

复制代码
sudo docker exec -it my_mysql mysql -u root -p

系统会提示你输入密码,输入你在创建容器时设置的密码即可。

5. 数据持久化

为了确保数据不会在容器停止时丢失,我们需要配置数据卷。可以使用以下命令创建一个名为 mysql_data 的数据卷,并将其挂载到 MySQL 容器中:

复制代码
sudo docker run --name my_mysql -e MYSQL_ROOT_PASSWORD=your_password -v mysql_data:/var/lib/mysql -d mysql:latest

这样,即使容器被删除,数据也会保存在 mysql_data 卷中。

6. 常用参数说明

  • MYSQL_ROOT_PASSWORD:设置 MySQL root 用户的密码。
  • -v:用于挂载卷,确保数据持久化。

总结

通过以上步骤,我们成功在 Ubuntu 系统下通过 Docker 部署了 MySQL 服务器。无论是开发环境还是生产环境,这种方式都能让你快速上手并管理你的数据库。Docker 的灵活性和 MySQL 的强大功能结合在一起,让开发者的工作变得更加高效和便捷。快来试试吧!

相关推荐
Erwin Rommel5592 分钟前
nginx的https服务搭建实验
服务器·nginx·https
mzhan0178 分钟前
Linux: console: printk: console_no_auto_verbose
linux·运维·服务器
用什么都重名12 分钟前
Docker 镜像源配置指南
运维·docker·容器
河南博为智能科技有限公司22 分钟前
高集成度国产八串口联网服务器:工业级多设备联网解决方案
大数据·运维·服务器·数据库·人工智能·物联网
Savvy..25 分钟前
天机学堂-Day01
linux·服务器·网络
HIT_Weston28 分钟前
47、【Ubuntu】【Gitlab】拉出内网 Web 服务:Nginx 事件驱动分析(一)
前端·ubuntu·gitlab
忙里偷闲学python44 分钟前
containerd_buildkitd构建镜像,告别docker构建
运维·docker·容器
w***15311 小时前
ubuntu 安装 Redis
linux·redis·ubuntu
liweiweili1262 小时前
Linux 中替换某个目录下所有文件中的特定字符串
linux·运维·服务器
阿拉斯攀登2 小时前
Docker 全面解析:从核心概念到实践应用
docker·云原生·容器·架构