Docker 部署 MySQL

System May 17, 2023

在整站的部署当中,除了操作系统的安装以外,服务环境后台支撑部分需要先把数据库先做了。这样其它服务如果有数据库环境需求就可以直接挂载使用了。

我选用的是通用性最强的 MySQL 作为数据库服务器。之前考虑过 MariaDB,顾及到和部署的应用的兼容问题等一系列原因,最终决定还是老老实实使用 MySQL 吧。

数据库使用 Docker Compose 进行部署,脚本如下:

version: '3.9'
# 文件版本只要高于 3.0 就可以。

services:
  
  #部署 MySQL 数据库容器
  db:
    image: mysql:debian
    # 根据个人喜好,选择合适的发布分支。
    container_name: MySQL
    # 部署后容器的名字。
    command: '--default-authentication-plugin=mysql_native_password'
    # 使用传统的密码验证方式,为了兼顾应用的兼容性。
    restart: always
    # 设置容器自动启动
    environment:
      MYSQL_ROOT_PASSWORD: <修改为 root 初始密码>
      # 设置数据库 root 用户的初始密码。
    volumes:
      - ./volume/database:/var/lib/mysql
      # 在 docker-compose。yml 文件当前目录的 volume 目录中存放所有数据库的数据文件。方便日后迁移或备份等操作。
    expose:
      - 3306
      - 33060

  # 部署 数据库管理应用容器
  adminer:
    image: adminer
    container_name: Adminer
    restart: always
    ports:
      - 8001:8080

以上文本保存为 docker-compose.yml 文件,上传到服务器合适的目录中去,我个人建议创建一个专门存放 compose 文件的目录,然后里面再创建以软件名命名的子目录。然后执行命令:docker compose up -d 来创建 MySQL 和 Adminer 两个容器。容器生成的同时,会向 volume 目录中写入数据库的所有基础数据,并且会创建名为:mysql-default 的网络。这也是其它应用所要加入的网络。以此可以和 MySQL 数据库进行本地通信。

至此,数据库的搭建部署就完成了,因为有 Adminer 可以进行数据的导入导出和增删改等操作,所以用命令行对数据库进行操作的方法就暂且不说了。等待之后部署其它项目的文章吧。先这么着......

Tags