Docker 部署 MySQL
在整站的部署当中,除了操作系统的安装以外,服务环境后台支撑部分需要先把数据库先做了。这样其它服务如果有数据库环境需求就可以直接挂载使用了。
我选用的是通用性最强的 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 可以进行数据的导入导出和增删改等操作,所以用命令行对数据库进行操作的方法就暂且不说了。等待之后部署其它项目的文章吧。先这么着......