docker部署mysql及制作镜像压缩包实践

 更新时间:2026年01月10日 14:39:40   作者:爱吃萝卜的美羊羊  
这篇文章主要介绍了docker部署mysql及制作镜像压缩包实践,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

前言:本次教程系统是基于centos7。

拉取mysql镜像

1、需要先配置docker加速镜像

sudo mkdir -p /etc/docker

sudo tee /etc/docker/daemon.json <<EOF
{
    "registry-mirrors": ["https://docker.wctmd.us.kg"]
}
EOF
 
sudo systemctl daemon-reload
sudo systemctl restart docker

如果不配置是无法拉取mysql镜像的,如下

配置后执行拉取命令:

执行如下命令可查看已拉取的镜像及版本

docker images

也可设置特点版本下载所需要的mysql镜像,如:

docker pull mysql:5.7

我下载了mysql5.7版本的镜像

2、制作压缩包

docker save -o mysql.tar mysql

mysql.tar  压缩包名称

mysql 本地mysql镜像名称

删除mysql镜像

docker rmi mysql

现在我本地只剩mysql5.7的镜像

切换到压缩包的目录,用本地压缩包加载镜像,这样就不用每次都远程去拉取镜像

docker load -i mysql.tar

3、用镜像部署mysql容器

需要把mysql配置文件my.cnf上传,my.cnf内容如下:

# For advice on how to change settings please see
# http://dev.mysql.com/doc/refman/8.3/en/server-configuration-defaults.html

[mysqld]
#
# Remove leading # and set to the amount of RAM for the most important data
# cache in MySQL. Start at 70% of total RAM for dedicated server, else 10%.
# innodb_buffer_pool_size = 128M
#
# Remove leading # to turn on a very important data integrity option: logging
# changes to the binary log between backups.
# log_bin
#
# Remove leading # to set options mainly useful for reporting servers.
# The server defaults are faster for transactions and fast SELECTs.
# Adjust sizes as needed, experiment to find the optimal values.
# join_buffer_size = 128M
# sort_buffer_size = 2M
# read_rnd_buffer_size = 2M

# Remove leading # to revert to previous value for default_authentication_plugin,
# this will increase compatibility with older clients. For background, see:
# https://dev.mysql.com/doc/refman/8.3/en/server-system-variables.html#sysvar_default_authentication_plugin
# default-authentication-plugin=mysql_native_password
host-cache-size=0
skip-name-resolve
datadir=/var/lib/mysql
socket=/var/run/mysqld/mysqld.sock
secure-file-priv=/var/lib/mysql-files
user=mysql
default-time-zone='Asia/Shanghai'
pid-file=/var/run/mysqld/mysqld.pid
[client]
socket=/var/run/mysqld/mysqld.sock

!includedir /etc/mysql/conf.d/

其中要注意设置mysql时区,上面的配置我加了时区,不然数据库默认是UTC时区

default-time-zone='Asia/Shanghai'

把my.cnf上传到/usr/local/mysql目录下

执行下面命令即可部署mysql容器

docker run -d --restart=always --name mysql -p 3307:3306 -v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/conf.d/my.cnf -e MYSQL_ROOT_PASSWORD=123456 mysql

注意3307是宿主机端口,3306是容器内部mysql端口,

--restart=always 表示把mysql容器设置到开机启动服务中,系统重启后,mysql容器随机启动

-v /usr/local/mysql/data:/var/lib/mysql -v /usr/local/mysql/my.cnf:/etc/mysql/conf.d/my.cnf 是把mysql数据库数据、配置文件挂载到宿主机中,即使删除了容器,mysql数据还存在,不丢失。每次用上面的命令重新部署容器,数据库数据和配置文件都会自动加载到容器中。

查看MySQL容器是否部署成功:

docker ps

说明已经部署成功,且状态是正常的.

用命令进入容器,进入mysql,验证mysql是否正常运行

docker exec -it mysql /bin/bash
mysql -uroot -p

然后输入密码即可进入到mysql中:

至此,mysql部署完成,远程访问,使用navicat或者phpmyadmin等工具,配置端口(我设置的宿主机端口是3307)。即可访问成功!

总结

以上为个人经验,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 在OpenWrt设备上搭建Docker环境的完整方案

    在OpenWrt设备上搭建Docker环境的完整方案

    OpenWrt 作为一个高度可定制的嵌入式 Linux 发行版,其模块化设计为 Docker 容器化部署提供了可能性,将 Docker 引入 OpenWrt 环境,能够带来许多优势,所以本文给大家分享了在 OpenWrt 设备上搭建 Docker 环境的完整方案,需要的朋友可以参考下
    2025-04-04
  • docker容器管理之Docker Engine详解

    docker容器管理之Docker Engine详解

    当我们运行集群Docker引擎时,管理器节点是管理集群和存储集群状态的关键组件,在这篇文章中我们将了解manager节点的一些关键功能很重要,以正确部署和维护集群,需要的朋友可以参考下
    2023-08-08
  • Docker安装MySQL8的方法步骤

    Docker安装MySQL8的方法步骤

    本篇文章主要介绍了Docker安装MySQL8的方法步骤,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-06-06
  • 简单谈谈Docker镜像的使用方法

    简单谈谈Docker镜像的使用方法

    本次分享从个人的角度,讲述对于Docker镜像的使用方法,包括了从从Docker Hub或者其他镜像源安装Docker镜像,从Image file安装Docker镜像,从Docker file制作Docker镜像,有需要的小伙伴可以参考下
    2016-10-10
  • docker重新加载nginx配置方式

    docker重新加载nginx配置方式

    这篇文章主要介绍了docker重新加载nginx配置方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-08-08
  • 从0开始了解Docker入门(小结)

    从0开始了解Docker入门(小结)

    本篇文章主要介绍了从0开始了解Docker(小结),小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2018-04-04
  • 使用docker打包项目的完整流程记录(小白可懂)

    使用docker打包项目的完整流程记录(小白可懂)

    这篇文章主要介绍了使用docker打包项目的完整流程,并详细解释了Dockerfile、构建镜像和创建容器的步骤,通过实战项目大家可以掌握基本的Docker打包流程,需要的朋友可以参考下
    2025-04-04
  • Docker安装常用组件(mysql,redis)的方法

    Docker安装常用组件(mysql,redis)的方法

    今天小编就为大家分享一篇关于Docker安装常用组件(mysql,redis)的方法,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2018-10-10
  • Docker新手初探之常用命令实践记录

    Docker新手初探之常用命令实践记录

    这篇文章主要给大家介绍了关于Docker新手初探之常用命令实践的相关资料,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2020-08-08
  • 使用Docker构建并部署Go Web服务的详细教学

    使用Docker构建并部署Go Web服务的详细教学

    在现代软件开发中,应用的可移植性和环境一致性至关重要,本文将带你从零开始,实战演示如何使用 Docker 构建并部署一个 Go Web 服务,需要的可以了解下
    2025-10-10

最新评论