docker一键部署MySQL的实现示例

 更新时间:2023年08月01日 08:31:11   作者:wzy0623  
本文主要介绍了docker一键部署MySQL的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧

1. 前期准备

新部署前可以从仓库(repository)下载 MySQL 镜像,或者从已有部署中的镜像生成文件:

# 查看当前本地镜像
docker images
# 生成本地镜像文件
docker save <IMAGE ID> -o mysql_8023.tar

2. 导入镜像

# 在新部署的机器上导入镜像
docker load -i mysql_8023.tar
docker images

3. 创建部署脚本文件

mysql-deploy.sh 文件内容如下:

#!/bin/bash
# 生成目录
mkdir -p /usr/local/docker/mysql/mysql-files
mkdir -p /usr/local/docker/mysql/conf
mkdir -p /usr/local/docker/mysql/logs
mkdir -p /usr/local/docker/mysql/data
# 将配置文件复制到相应目录
cp /root/my.cnf.template /usr/local/docker/mysql/conf/my.cnf
# 修改属主
chown -R polkitd:root /usr/local/docker/mysql/
# 创建容器
docker run -p 3306:3306 \
    -v /usr/local/docker/mysql/mysql-files:/var/lib/mysql-files \
    -v /usr/local/docker/mysql/conf:/etc/mysql \
    -v /usr/local/docker/mysql/logs:/var/log/mysql \
    -v /usr/local/docker/mysql/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=root \
    --name mysql \
    --restart=always \
    -e TZ=Asia/Shanghai \
    -d cbe8815cbea8

4. MySQL 服务器配置文件模板

my.cnf.template 文件内容如下:

[mysqld]
max_allowed_packet = 1G
explicit_defaults_for_timestamp=0
lower_case_table_names=1
log_timestamps=SYSTEM
sql_mode='STRICT_TRANS_TABLES,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
binlog_expire_logs_seconds=259200
secure_file_priv=''
log_bin_trust_function_creators=on
character-set-server = utf8mb4
default_authentication_plugin=mysql_native_password
datadir=/var/lib/mysql/
socket=/var/run/mysqld/mysqld.sock
wait_timeout=30
innodb_buffer_pool_size = 4G
max_connections = 1000
default-time-zone = '+8:00'
port = 3306
skip-name-resolve 
innodb_print_all_deadlocks=1
log_output='table'
server-id = 2955
innodb_max_dirty_pages_pct = 90
innodb_lock_wait_timeout = 120
gtid-mode = off
local_infile=0
log_error='/var/lib/mysql/master.err'
skip_symbolic_links=yes
[mysqldump]
quick
max_allowed_packet = 1G
[mysqld_safe]
open-files-limit = 8192

5. 执行脚本创建容器

./mysql-deploy.sh

6. 后续工作

# 进入容器
docker exec -it mysql /bin/bash
# 登录 MySQL
mysql -uroot -proot -S /var/lib/mysql/mysqld.sock
# 创建用户
create user dba identified by '123456';
grant all on *.* to dba with grant option;

7. 基本维护

# 查看镜像
docker images
# 查看容器
docker ps
# 查看容器详细信息
docker inspect <CONTAINER ID>
# 重启容器
docker restart mysql
# 停止容器
docker stop mysql
# 删除容器
docker rm mysql

到此这篇关于docker一键部署MySQL的实现示例的文章就介绍到这了,更多相关docker部署MySQL内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Docker快速部署国产达梦数据库的实现示例

    Docker快速部署国产达梦数据库的实现示例

    本文主要介绍了Docker快速部署国产达梦数据库的实现示例,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2022-07-07
  • 使用minikube安装使用单机版K8S方式(docker)

    使用minikube安装使用单机版K8S方式(docker)

    本文介绍了如何在centos7上使用minikube快速搭建单机版k8s,主要步骤包括:下载kubectl和docker,创建新用户,下载和安装minikube,验证安装情况,最后,通过执行minikube和minikubestop启停K8s,或使用minikubedelete彻底删除K8S的数据
    2024-10-10
  • 修改docker默认存储位置的两种方法

    修改docker默认存储位置的两种方法

    本文主要介绍了修改docker默认存储位置的两种方法,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-08-08
  • Docker方式部署OceanBase数据库的完整步骤

    Docker方式部署OceanBase数据库的完整步骤

    OceanBase数据库是一个高性能的分布式关系型数据库,它支持多种部署方式,包括但不限于单机部署、集群部署等,这篇文章主要介绍了Docker方式部署OceanBase数据库的完整步骤,需要的朋友可以参考下
    2025-04-04
  • 在Docker中跑Hadoop与镜像制作方法

    在Docker中跑Hadoop与镜像制作方法

    这篇文章主要介绍了在Docker中跑Hadoop与镜像制作方法,本文通过实例代码和截图的形式给大家介绍的非常详细,具有一定的参考借鉴价值,需要的朋友可以参考下
    2019-11-11
  • Docker在Ubuntu系统中的详细操作指南

    Docker在Ubuntu系统中的详细操作指南

    Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包在一个轻量级、可移植的容器中,实现快速部署和运行,本文给大家详细介绍了Docker在Ubuntu系统中的详细操作指南,需要的朋友可以参考下
    2025-07-07
  • docker容器中cron任务未执行的原因分析及解决

    docker容器中cron任务未执行的原因分析及解决

    在Ubuntu 22.04镜像中cron任务执行失败,可能与pam权限或文件权限设置有关,解决方法包括动态加载任务至crontab及将文件权限设为600(容器默认umask=0022),后者因权限冲突导致执行失败,推荐此方案
    2025-08-08
  • Docker阿里云RocketMQ 4.5.1部署流程详解

    Docker阿里云RocketMQ 4.5.1部署流程详解

    RocketMQ是阿里开源的一款分布式消息中间件,具有日志监控、消息推送、金融报文、电信信令、削峰填谷等功能.接下来通过本文给大家介绍Docker阿里云RocketMQ 4.5.1部署流程,感兴趣的朋友一起看看吧
    2021-05-05
  • 关于docker compose安装redis集群的问题(集群扩容、集群收缩)

    关于docker compose安装redis集群的问题(集群扩容、集群收缩)

    这篇文章主要介绍了docker compose安装redis集群、集群扩容、集群收缩,主要包括redis配置信息模板,编写批量生成配置文件脚本的相关命令,需要的朋友参考下吧
    2022-03-03
  • Docker 限制容器对内存的使用详解

    Docker 限制容器对内存的使用详解

    这篇文章主要介绍了Docker 限制容器对内存的使用详解,小编觉得挺不错的,现在分享给大家,也给大家做个参考。一起跟随小编过来看看吧
    2017-08-08

最新评论