使用 Docker 部署 mysql 应用

介绍

准备工作

以上提供的内容仅作为参考,请按需选用

快速使用

使用 Docker 部署

环境搭建
创建容器
  1. 在系统任意位置创建一个文件夹(可选)

    mkdir -p /opt/docker/mysql && cd /opt/docker/mysql
    
    mkdir ./{conf,data,logs}
    
  2. 搜索 & 拉取镜像

    docker search mysql
    docker pull mysql:5.6
    
  3. 启动服务

    docker run -id \
    -p 3306:3306 \
    --name=mysql \
    -v $PWD/conf:/etc/mysql/conf.d \
    -v $PWD/logs:/logs \
    -v $PWD/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    mysql:5.6
    

参数说明:

  • -p 3307:3306 - 将容器的 3306 端口映射到宿主机的 3307 端口。
  • -v $PWD/conf:/etc/mysql/conf.d - 将主机当前目录下的 conf/my.cnf 挂载到容器的 /etc/mysql/my.cnf 配置目录。
  • -v $PWD/logs:/logs - 将主机当前目录下的 logs 目录挂载到容器的 /logs 日志目录。
  • -v $PWD/data:/var/lib/mysql - 将主机当前目录下的 data 目录挂载到容器的 /var/lib/mysql 数据目录。
  • -e MYSQL_ROOT_PASSWORD=123456 - 初始化 root 用户的密码。
更新容器
  1. 停止运行中的容器

    docker stop mysql
    docker rm mysql
    
  2. 备份数据(重要)

    cp -r /opt/docker/mysql /opt/docker/mysql.archive
    
  3. 更新服务

  • 拉取镜像

    docker pull mysql:8.0
    
  • 重新启动服务

    docker run -id \
    -p 3307:3306 \
    --name=mysql \
    -v $PWD/conf:/etc/mysql/conf.d \
    -v $PWD/logs:/logs \
    -v $PWD/data:/var/lib/mysql \
    -e MYSQL_ROOT_PASSWORD=123456 \
    mysql:8.0
    

使用 Docker Compose 部署

环境搭建
创建容器
  1. 在系统任意位置创建一个文件夹(可选)

    mkdir -p /opt/docker/mysql && cd /opt/docker/mysql
    mkdir ./{conf,data,logs,init}
    

注意:后续操作中,产生的所有数据都会保存在这个目录,请妥善保存。

  1. 创建 docker-compose.yaml

    version: '3'
        services:
          mysql:
            image: mysql:5.6
            container_name: e-mysql
            privileged: true
            restart: always
            ports:
              - 3306:3306
            environment:
              - MYSQL_ROOT_PASSWORD=123456
            volumes:
              - $PWD/conf:/etc/mysql/conf.d
              - $PWD/conf/my.cnf:/etc/my.cnf
              - $PWD/logs:/logs
              - $PWD/data:/var/lib/mysql
              - $PWD/init:/docker-entrypoint-initdb.d/
        networks:
          default:
            driver: bridge    
    
  2. 启动服务

    docker-compose up -d
    

    实时查看日志:

    docker-compose logs -f
    
更新容器
  1. 停止运行中的容器

    cd /opt/docker/mysql && docker-compose down
    
  2. 备份数据(重要)

    cp -r /opt/docker/mysql /opt/docker/mysql.archive
    
  3. 更新服务

  • 修改 docker-compose.yaml 中配置的镜像版本

  • 拉取镜像

    docker-compose pull
    
  • 重新启动服务

    docker-compose up -d
    

FAQ

参考文献