• 精创网络
  • 精创网络
  • 首页
  • 产品优势
  • 产品价格
  • 产品功能
  • 关于我们
  • 在线客服
  • 登录
  • DDoS防御和CC防御
  • 精创网络云防护,专注于大流量DDoS防御和CC防御。可防止SQL注入,以及XSS等网站安全漏洞的利用。
  • 免费试用
  • 新闻中心
  • 关于我们
  • 资讯动态
  • 帮助文档
  • 白名单保护
  • 常见问题
  • 政策协议
  • 帮助文档
  • 在Ubuntu18使用Docker部署MySQL数据库
  • 来源:www.jcwlyf.com更新时间:2024-11-25
  • 在现代软件开发中,Docker技术已经成为一种不可或缺的工具,特别是在数据库部署和管理方面。MySQL作为最受欢迎的开源数据库之一,广泛应用于Web开发和数据存储场景。通过Docker容器化部署MySQL,不仅可以简化安装过程,还能够提高数据库环境的可移植性和扩展性。本文将详细介绍如何在Ubuntu 18.04上使用Docker部署MySQL数据库,涵盖从安装Docker到配置MySQL的整个过程,帮助开发者快速搭建MySQL数据库环境。

    一、安装Docker

    在开始之前,首先需要确保系统上已安装Docker。Docker是一个开源的容器化平台,允许用户在容器中运行应用程序。下面是如何在Ubuntu 18.04系统上安装Docker的步骤。

    # 更新apt包索引
    sudo apt update
    
    # 安装依赖包
    sudo apt install apt-transport-https ca-certificates curl software-properties-common
    
    # 添加Docker的官方GPG密钥
    curl -fsSL https://download.docker.com/linux/ubuntu/gpg | sudo apt-key add -
    
    # 设置Docker的稳定版源
    sudo add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu $(lsb_release -cs) stable"
    
    # 更新apt包索引
    sudo apt update
    
    # 安装Docker CE(社区版)
    sudo apt install docker-ce
    
    # 验证Docker是否成功安装
    sudo docker --version

    完成以上步骤后,Docker已经成功安装在系统上。可以使用 "docker --version" 命令来验证Docker是否安装成功。

    二、安装Docker Compose(可选)

    Docker Compose是一个工具,用于定义和运行多容器的Docker应用。在复杂的应用场景中,使用Docker Compose可以方便地管理多个Docker容器。在部署MySQL数据库时,Docker Compose可以帮助我们方便地管理相关配置文件。下面是如何在Ubuntu 18.04上安装Docker Compose。

    # 下载Docker Compose的最新版本
    sudo curl -L "https://github.com/docker/compose/releases/download/1.29.2/docker-compose-$(uname -s)-$(uname -m)" -o /usr/local/bin/docker-compose
    
    # 赋予执行权限
    sudo chmod +x /usr/local/bin/docker-compose
    
    # 验证Docker Compose安装是否成功
    docker-compose --version

    如果Docker Compose安装成功,可以使用 "docker-compose --version" 命令来查看版本号。

    三、拉取MySQL镜像

    在Docker中,MySQL数据库是以镜像的形式提供的。你可以从Docker Hub上直接拉取MySQL的官方镜像。以下命令将帮助你下载最新版本的MySQL镜像。

    # 拉取MySQL官方镜像
    sudo docker pull mysql:latest

    这个命令将从Docker Hub上下载MySQL的最新版本镜像。如果需要特定版本的MySQL,可以将 "latest" 替换为相应的版本号,例如 "mysql:5.7" 或 "mysql:8.0"。

    四、创建MySQL容器

    下载完成镜像后,下一步是使用Docker运行MySQL容器。我们可以通过以下命令来启动一个MySQL容器,并且在容器中初始化数据库。

    # 启动MySQL容器
    sudo docker run --name mysql-container -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest

    命令解释:

    --name mysql-container:指定容器的名称为 "mysql-container"。

    -e MYSQL_ROOT_PASSWORD=my-secret-pw:设置MySQL的root账户密码为 "my-secret-pw"。

    -d mysql:latest:以后台模式运行容器,使用MySQL最新版本的镜像。

    执行此命令后,Docker将启动MySQL容器并在后台运行。如果一切顺利,你可以通过 "docker ps" 命令查看容器的运行状态。

    五、访问MySQL容器

    容器启动后,我们可以通过Docker的命令行工具连接到MySQL数据库。以下是连接MySQL容器的命令。

    # 进入MySQL容器的命令行
    sudo docker exec -it mysql-container mysql -u root -p

    输入命令后,系统会提示你输入MySQL的root账户密码(即 "my-secret-pw")。成功登录后,你将进入MySQL的命令行界面,可以执行SQL查询和管理数据库。

    六、配置MySQL数据持久化

    Docker容器是临时的,容器中的数据默认在容器删除后会丢失。为了确保MySQL数据的持久性,我们需要将MySQL的数据库文件挂载到宿主机的某个目录上。这可以通过Docker的数据卷来实现。

    # 创建一个数据目录
    sudo mkdir -p /opt/mysql-data
    
    # 启动带数据卷挂载的MySQL容器
    sudo docker run --name mysql-container -v /opt/mysql-data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:latest

    解释:

    -v /opt/mysql-data:/var/lib/mysql:将宿主机的 "/opt/mysql-data" 目录挂载到容器的 "/var/lib/mysql" 目录,这是MySQL存储数据的位置。

    通过这种方式,即使容器被删除或重启,MySQL的数据库文件依然保存在宿主机的 "/opt/mysql-data" 目录中,保证了数据的持久性。

    七、使用Docker Compose部署MySQL

    对于复杂的数据库部署,使用Docker Compose能够让配置变得更加简洁和易于管理。Docker Compose允许你通过一个配置文件定义多个容器,方便进行整体管理。下面是一个简单的Docker Compose配置文件,用于部署MySQL数据库。

    version: '3'
    services:
      mysql:
        image: mysql:latest
        environment:
          MYSQL_ROOT_PASSWORD: my-secret-pw
        volumes:
          - /opt/mysql-data:/var/lib/mysql
        ports:
          - "3306:3306"
        restart: always

    保存以上内容为 "docker-compose.yml" 文件后,执行以下命令来启动MySQL服务:

    # 使用Docker Compose启动服务
    docker-compose up -d

    此命令将根据 "docker-compose.yml" 文件启动MySQL容器,并自动配置数据持久化和端口映射。

    八、设置MySQL远程访问

    默认情况下,MySQL只允许本地访问。如果需要通过远程客户端访问MySQL数据库,需要修改MySQL的配置并开放相关端口。以下是开启MySQL远程访问的步骤:

    首先,在MySQL中创建一个远程用户。

    # 登录到MySQL命令行
    sudo docker exec -it mysql-container mysql -u root -p
    
    # 创建一个远程访问用户
    CREATE USER 'remote_user'@'%' IDENTIFIED BY 'remote_password';
    
    # 授权远程用户访问所有数据库
    GRANT ALL PRIVILEGES ON *.* TO 'remote_user'@'%';
    
    # 刷新权限
    FLUSH PRIVILEGES;

    然后,确保容器的3306端口已开放,可以通过以下命令查看容器端口映射情况。

    sudo docker ps

    如果没有映射端口,可以通过 "-p" 参数来重新启动MySQL容器并映射端口。

    九、总结

    通过Docker在Ubuntu 18.04上部署MySQL数据库是一个简单、高效且灵活的解决方案。本文详细介绍了从安装Docker、拉取MySQL镜像、启动容器,到配置数据持久化和远程访问的整个过程。通过使用Docker容器,开发者可以更方便地管理数据库环境,并实现更好的可移植性和扩展性。希望本文能帮助你快速搭建MySQL数据库环境并进行高效管理。

  • 关于我们
  • 关于我们
  • 服务条款
  • 隐私政策
  • 新闻中心
  • 资讯动态
  • 帮助文档
  • 网站地图
  • 服务指南
  • 购买流程
  • 白名单保护
  • 联系我们
  • QQ咨询:189292897
  • 电话咨询:16725561188
  • 服务时间:7*24小时
  • 电子邮箱:admin@jcwlyf.com
  • 微信咨询
  • Copyright © 2025 All Rights Reserved
  • 精创网络版权所有
  • 皖ICP备2022000252号
  • 皖公网安备34072202000275号