【Docker构建MySQL8.0镜像】

本文详细介绍了如何使用Docker构建并部署MySQL8.0镜像,包括拉取镜像、创建数据卷、设置配置、初始化SQL、执行脚本、打包镜像以及镜像迁移的整个过程。
摘要由CSDN通过智能技术生成

部署流程

1. 拉取docker镜像

docker pull mysql:8.0.35

拉取成功后就可以看到镜像了:
在这里插入图片描述

这里我们选择MySQL 8.0.35版本,因为在8.0.33及其之前的版本被扫出多个漏洞,所以决定使用比较新版本的8.0.35

2. 创建数据卷,存放MySQL数据

docker volume create mysql_data8_35

最好在启动时自己准备好配置文件

3. 启动MySQL镜像

3.1 启动脚本

docker run -d -e MYSQL_ROOT_PASSWORD=密码 --name mysql8 -d -p 13307:3306 -v mysql_data8_35:/var/lib/mysql -v /日志目录/log:/var/log/ -v /配置文件目录/my.cnf:/etc/mysql/my.cnf mysql:8.0.35

注意:上述启动命令需要修改密码日志目录配置文件目录等内容后才能执行

常见的mysql8配置文件 my.cnf

[mysqld]
datadir = /var/lib/mysql
secure-file-priv= NULL
sql-mode = “ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION”
!includedir /etc/mysql/conf.d/
character-set-server = utf8mb4
collation-server = utf8mb4_general_ci
init_connect=‘SET NAMES utf8mb4’
lower_case_table_names = 1
[mysql]
default-character-set=utf8mb4
[client]
default-character-set=utf8mb4

3.2 查看是否启动成功
在这里插入图片描述

4. 初始化sql放入MySQL镜像

4.1 查看镜像id

docker ps
在这里插入图片描述

4.2 往镜像中放入脚本

docker cp init.sql 84dc03543c0f:/root/init.sql

4.3 进入镜像

docker exec -it mysql8 bash

在这里插入图片描述

5. 执行MySQL脚本

  1. 执行前登录mysql,开启日志:set global general_log=1;
  2. 查询日志存放目录:show variables like ‘general%’;
  3. 后续可以在目录实时查看脚本执行情况
    在这里插入图片描述
  4. 创建数据库:CREATE DATABASE IF NOT EXISTS 数据库名 DEFAULT CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
  5. 执行MySQL脚本:mysql -uroot -p 数据库名 < /root/init.sql
    回车后输入密码
  6. 脚本执行完登录mysql去关闭日志:set global general_log=0;
    不关闭日志会导致数据堆积,mysql镜像越来越大

6. MySQL镜像打包

将MySQL镜像打成压缩包,后续就能直接把压缩包复制到别的服务器,实现镜像迁移

6.1 查看数据卷所在位置

docker volume inspect mysql_data8_35

在这里插入图片描述
6.2 数据压缩

  • 进入目录: cd /var/lib/docker/volumes/mysql_data8_35
  • 压缩数据:tar -czvf mysql8-35.tar.gz _data/

6.3 镜像压缩

docker save -o mysql8-35.tar mysql:8.0.35

6.4 最终结果
在这里插入图片描述

7. MySQL镜像迁移

1. 加载镜像
docker load -i mysql8-35.tar

加载后即可看到镜像

2. 解压数据卷文件
tar -zxvf mysql8-35.tar.gz
在这里插入图片描述
3. 启动镜像
启动指令:
docker run -d -e MYSQL_ROOT_PASSWORD=密码 --name mysql8 -d -p 13307:3306 -v 数据卷解压目录/_data:/var/lib/mysql -v 日志目录/logs:/var/log/mysql8 -v 配置文件目录/my.cnf:/etc/mysql/my.cnf mysql:8.0.35

上述指令的配置文件目录日志目录都是非必须的,如果不需要将对应 -v指令去掉即可

  • 21
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 很高兴回答您的问题。要部署MySQL 8.0,您可以使用Docker容器。首先,您需要在服务器上安装Docker,然后您可以通过运行以下命令来安装MySQL 8.0:docker run --name mysql8 -e MYSQL_ROOT_PASSWORD=yourpassword -d mysql:8.0. ### 回答2: 要使用Docker部署MySQL 8.0,可以按照以下步骤操作: 1. 首先,确保你的系统中已经安装了Docker。可以在终端中运行docker --version命令来检查Docker是否已经安装。 2. 在Docker Hub上搜索MySQL 8.0的官方镜像。可以在终端中运行docker search mysql来查找可用的镜像。找到合适的官方MySQL 8.0镜像。 3. 下载MySQL 8.0的镜像。使用docker pull命令下载镜像,例如:docker pull mysql:8.0。 4. 创建一个MySQL容器。可以使用docker run命令来创建容器,同时指定容器的名称、端口映射和其他需要的配置。例如,运行以下命令来创建一个名为mysql-container的容器docker run --name mysql-container -p 3306:3306 -e MYSQL_ROOT_PASSWORD=your_password -d mysql:8.0 这将创建一个名为mysql-container的容器,并将主机的3306端口映射到容器的3306端口。-e选项用于设置MySQL的root用户密码。 5. 连接到MySQL容器。使用MySQL客户端工具,如mysql命令行工具,来连接到MySQL容器。运行以下命令连接到mysql-container容器: mysql -h localhost -P 3306 -u root -p 输入之前设置的密码,即可连接到MySQL容器。 6. 现在你可以在MySQL容器中执行常规的MySQL操作,比如创建数据库、创建表、插入数据等。 使用Docker部署MySQL 8.0可以方便地创建一个独立的、可移植的MySQL环境,使得开发和部署更为简单和灵活。此外,Docker还提供了容器的管理和部署等功能,使得MySQL容器的管理更为方便。 ### 回答3: 要使用Docker部署MySQL 8.0,我们需要按照以下步骤进行操作: 1. 安装Docker:首先,我们需要在目标机器上安装Docker引擎。可以根据操作系统的不同,选择适合的安装方法。安装完成后,可以通过运行`docker version`命令来验证安装是否成功。 2. 拉取MySQL 8.0镜像:我们需要从Docker镜像仓库中拉取MySQL 8.0的镜像。运行以下命令来执行拉取操作: ``` docker pull mysql:8.0 ``` 3. 创建容器:接下来,我们需要创建MySQL的Docker容器。可以使用以下命令创建容器并设置相关参数: ``` docker run --name my-mysql -e MYSQL_ROOT_PASSWORD=<root密码> -p <主机端口>:3306 -d mysql:8.0 ``` 其中,`my-mysql`是容器的名称,`<root密码>`是root用户的密码,`<主机端口>`是将主机上的端口映射到MySQL容器的3306端口。 4. 连接到MySQL:稍等片刻后,容器将启动并运行MySQL服务。我们可以使用MySQL客户端工具来连接到MySQL服务器。运行以下命令来连接到MySQL 8.0服务器: ``` mysql -h <主机名> -P <主机端口> -u root -p ``` 其中,`<主机名>`是主机的名称或IP地址,`<主机端口>`是上一步中映射的端口。 5. 配置MySQL:连接到MySQL服务器后,我们可以执行任何MySQL命令来配置和管理数据库。例如,我们可以创建新的数据库、用户、表等。 以上就是使用Docker部署MySQL 8.0的步骤。通过使用Docker,我们可以轻松地在不同的环境中部署和管理MySQL数据库,并保持环境的一致性和可重现性。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值