docker之安装mysql教程

 更新时间:2025年03月21日 09:37:25   作者:java阿杜  
这篇文章主要介绍了docker之安装mysql教程,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教

docker安装mysql

在平常的开发工作中,我们经常需要用到 mysql 数据库。那么在docker容器中,应该怎么安装mysql数据库呢。

简单来说:

  • 第一步:拉取镜像;
  • 第二步:创建挂载目录并设置 my.conf;
  • 第三步:启动容器,第四步:测试连接

1:拉取镜像:docker pull mysql:版本

选择合适的mysql版本,如 拉取8.0.33版本:docker pull mysql:8.0.33,如果拉取镜像拉取不成功,那么可以修改宿主机 Docker 的配置文件 /etc/docker/daemon.json,修改镜像加速器配置。拉取成功后,可以通过 docker images mysql 命令查看:

2:创建挂载目录 并 配置 my.conf 

1)创建挂载目录:

mkdir -p /docker/mysql/conf
mkdir -p /docker/mysql/data
mkdir -p /docker/mysql/log

2)创建 my.conf 并配置内容:在 conf 文件夹 下新建 my.conf 文件,配置内容如下:

[client]
default-character-set=utf8mb4

[mysql]
default-character-set=utf8mb4

[mysqld]
# 设置东八区时区
default-time_zone = '+8:00'

# 设置密码验证规则
authentication_policy=mysql_native_password

# 限制导入和导出的数据目录
# 为空,不限制导入到处的数据目录
# 指定目录,必须从该目录导入到处,且MySQL不会自动创建该目录
# 为NULL,禁止导入与导出功能
secure_file_priv=/var/lib/mysql

init_connect='SET collation_connection = utf8mb4_general_ci'
init_connect='SET NAMES utf8mb4'
character-set-server=utf8mb4
collation-server=utf8mb4_general_ci
skip-character-set-client-handshake
sql_mode='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_ENGINE_SUBSTITUTION'
skip-name-resolve
max_connections=1000
# lower_case_table_names=1
skip-log-bin

3:启动容器

1) docker run:

docker run --name mysql-8.0.33 \
  -e MYSQL_ROOT_PASSWORD=your_password \
  -e MYSQL_CHARSET=utf8mb4 \
  -e MYSQL_COLLATION=utf8mb4_unicode_ci \
  -p 3306:3306 \
  -v /docker/mysql:/var/lib/mysql \
  -d mysql:8.0.33

命令解释:

  • a:--name mysql-8.0.33:设置容器名称
  • b:-e MYSQL_ROOT_PASSWORD=your_password:设置root用户密码
  • c:-e MYSQL_CHARSET=utf8mb4:为 MySQL 数据库设置字符集为 utf8mb4
  • d:-e MYSQL_COLLATION=utf8mb4_unicode_ci:数据库设置排序规则为 utf8mb4_unicode_ci
  • e:-p 3306:3306:-p 用于将容器内部的端口映射到主机的端口,将宿主机3306端口映射到容器3306端口
  • f:-v /docker/mysql:/var/lib/mysql:v 是挂载选项,用于将主机上的目录挂载到容器内部的目录,实现数据的持久化存储。
  • g:/data/mysql:/var/lib/mysql 表示将主机上的 /data/mysql 目录挂载到容器内的 /var/lib/mysql 目录,这样容器内 MySQL 数据库的数据会存储在主机的 /data/mysql 目录中,即使容器被删除,数据也不会丢失。
  • h:-d mysql:8.0.33:表示以守护进程模式运行容器,即容器将在后台运行。Docker 将从 Docker Hub 或本地镜像仓库拉取该镜像,如果不存在,则会先拉取再运行。

2)docker-compose.yml,命令 docker compose up -d mysql

version: '1'
services:
  mysql:
    image: mysql:8.0.33
    restart: always
    container_name: mysql
    environment:
      MYSQL_ROOT_PASSWORD: your_password
      TZ: Asia/Shanghai
      
    ports:
      - "3306:3306"
      
    volumes:
      - /docker/mysql/log:/var/log/mysql
      - /docker/mysql/data:/var/lib/mysql 
      - /docker/mysql/conf:/etc/mysql/conf.d
      
    command:
      --max_connections=1000
      --default-authentication-plugin=mysql_native_password
      --character-set-server=utf8mb4
      --collation-server=utf8mb4_general_ci
	  
	privileged: true
    network_mode: "host"

启动完成后,可以使用 docker ps 命令查看当前容器启动状态,可以 使用 docker logs 容器id 或者 docker logs mysql 查看启动日志。

4:测试

使用数据连接客户端工具测试。

总结

以上为 docker 下 部署 mysql 数据库的基本步骤,希望能给大家一个参考,也希望大家多多支持脚本之家。

相关文章

  • 使用docker搭建jenkins自动化工具的实现

    使用docker搭建jenkins自动化工具的实现

    大家在工作中,应该都有使用过jenkins 自动化打包或发布,本文主要介绍了使用docker搭建jenkins自动化工具的实现,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-04-04
  • docker安装tomcat并部署Springboot项目war包的方法

    docker安装tomcat并部署Springboot项目war包的方法

    这篇文章主要介绍了docker安装tomcat并部署Springboot项目war包的方法,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2020-11-11
  • 在Docker中构建并运行Nginx容器的完整教程

    在Docker中构建并运行Nginx容器的完整教程

    Docker 作为一种强大的容器化平台,使得开发、测试和部署变得更加高效和灵活,Nginx 是一款广泛使用的高性能 Web 服务器和反向代理服务器,适用于各种场景,在本教程中,我们将详细介绍如何在 Docker 中构建并运行一个 Nginx 容器,需要的朋友可以参考下
    2024-09-09
  • Docker容器启动和停止的操作指南

    Docker容器启动和停止的操作指南

    Docker 是一个开源的应用容器引擎,允许开发者将应用及其依赖打包在一个轻量级的容器中,并在任何支持 Docker 的机器上运行,本文将详细介绍如何精确地启动和停止 Docker 容器,提供一系列常见的 Docker 启动与停止操作的代码示例,帮助你快速上手,需要的朋友可以参考下
    2025-04-04
  • docker打包node项目的过程讲解

    docker打包node项目的过程讲解

    今天小编就为大家分享一篇关于docker打包node项目的过程讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-03-03
  • Docker 批量删除容器或镜像的操作方法

    Docker 批量删除容器或镜像的操作方法

    这篇文章主要介绍了Docker 批量删除容器或镜像的操作方法,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2023-03-03
  • docker容器启动设置固定IP的实现

    docker容器启动设置固定IP的实现

    本文主要介绍了docker容器启动设置固定IP的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-12-12
  • Docker工作模式及原理详解

    Docker工作模式及原理详解

    Docker是一个Client-Server结构的系统,Docker的守护进程运行在主机上,通过Socket从客户端访问!DockerServer接受到DockerClient的指令,就会执行这个命令
    2021-09-09
  • docker部署springboot项目实践(更新无需重新build)

    docker部署springboot项目实践(更新无需重新build)

    文章描述了使用Docker部署Spring Boot项目的另一种方式,通过在宿主机上挂载jar包路径,实现jar包的热更新,避免了每次更新都需要重新构建镜像的问题
    2026-01-01
  • Docker 中 MySQL 的部署与管理技巧

    Docker 中 MySQL 的部署与管理技巧

    这篇文章主要介绍了Docker 中 MySQL 的部署与管理技巧,本文给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2024-08-08

最新评论