Docker安装MySQL教程知识点:
Docker简介:
Docker是一个开源的应用容器引擎,允许开发者将应用程序及其依赖打包到一个可移植的容器中,然后发布到任何流行的Linux或Windows机器上。容器完全使用沙箱机制,容器之间彼此隔离,互不影响。
MySQL简介:
MySQL是一个开源的关系型数据库管理系统,由Oracle公司维护,广泛用于Web应用程序,支持多种操作系统。其具有高性能、高可靠性和易用性特点。
安装Docker:
1. Ubuntu系统安装Docker引擎:
使用apt包管理器更新系统并安装docker.io包,启用并启动docker服务。
```bash
sudo apt update
sudo apt install docker.io
sudo systemctl enable --now docker
```
2. CentOS系统安装Docker引擎:
使用yum包管理器安装额外的包以及docker-ce,启用并启动docker服务。
```bash
sudo yum install -y yum-utils
sudo yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
sudo yum install -y docker-ce docker-ce-cli containerd.io
sudo systemctl enable --now docker
```
3. Windows系统安装Docker:
下载并双击安装Docker Desktop for Windows,按照提示完成安装,启动Docker Desktop。
4. macOS系统安装Docker:
下载并双击安装Docker Desktop for macOS,按照提示完成安装,启动Docker Desktop。
拉取MySQL镜像:
使用docker pull命令可以从DockerHub上拉取最新版本的MySQL镜像。
```bash
docker pull mysql:latest
```
运行MySQL容器:
1. 基本命令运行容器:
使用docker run命令指定容器名称、设置root用户密码、后台运行容器,并映射宿主机端口到容器端口。
```bash
docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=your_password -d -p 3306:3306 mysql:latest
```
2. 使用数据卷持久化数据:
使用docker run命令将宿主机目录挂载到容器内部目录,以实现数据的持久化。
```bash
docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=your_password -d -p 3306:3306 -v /your/local/path:/var/lib/mysql mysql:latest
```
连接MySQL容器:
1. 通过命令行连接:
使用docker exec命令进入MySQL命令行,输入root密码后即可连接。
```bash
docker exec -it my-mysql mysql -uroot -p
```
2. 使用客户端工具连接:
下载并安装MySQL客户端工具,如MySQL Workbench,配置连接信息并连接。
配置MySQL:
1. 修改MySQL配置文件:
在宿主机创建自定义配置文件`my.cnf`,设置字符集和排序规则。
```ini
[mysqld]
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
```
2. 挂载配置文件到容器:
使用docker run命令将宿主机的配置文件挂载到容器内相应位置。
```bash
docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=your_password -d -p 3306:3306 -v /your/local/path/my.cnf:/etc/my.cnf -v /your/local/path/data:/var/lib/mysql mysql:latest
```
总结,该文档详细介绍了在不同操作系统上安装Docker引擎的方法,以及如何通过Docker运行MySQL容器,并对其进行基本配置和连接。重点包括了配置文件的挂载和数据的持久化处理。这些步骤确保了MySQL容器化部署的完整性和数据安全性。通过上述内容,用户可以轻松地在Docker环境中搭建和管理MySQL服务,实现灵活高效的数据存储解决方案。