为啥要写本文:Docker 用惯了本身没有难度,但是这么多年,光 mysql 已经搭建了无数次了,每次搭建都有去找文档,比较浪费时间,索性写一篇博客,记录下来方便以后再次查看。
首先搭建 Mysql,我选择了MariaDB,具体原因可以看下面Mysql MariaDB 的区别:
MySQL 和 MariaDB 都是关系型数据库管理系统,二者有以下区别:
1. 开发者不同:MySQL 由 Oracle 公司开发和维护,而 MariaDB 是由 MySQL 的创始人 Michael Widenius 开发的。
2. 开源许可证不同:MySQL 使用 GPL 许可证,而 MariaDB 使用 GPL 和 LGPL 许可证。
3. 功能和性能差异:MariaDB 在 MySQL 的基础上增加了一些新功能,比如支持更多的存储引擎、更好的查询优化等,并且在一些场景下性能更好。
4. 社区支持不同:MariaDB 的社区支持度逐渐增强,有很多活跃的开发者和用户贡献代码和解决问题。MySQL 相比之下则稍显落后。
综上所述,MariaDB 是 MySQL 的一个分支版本,并且在一些方面有所改进和优化。因此,在选择数据库时,需要根据实际情况来考虑使用哪种数据库。
构建一个 docker-compose.yml
文件,如下面代码所示:
包含了 mariadb
和 phpmyadmin
,注意里面的密码相关的改成自己的。
version: '3'
services:
db:
image: mariadb:10.5.10
ports:
- 3306:3306
environment:
MYSQL_ROOT_PASSWORD: "root"
MYSQL_DATABASE: "app"
MYSQL_USER: "app"
MYSQL_PASSWORD: "123123"
TZ: Asia/Shanghai
volumes:
- /data/database/mysql:/var/lib/mysql
phpmyadmin:
image: phpmyadmin/phpmyadmin
ports:
- "8081:80"
environment:
PMA_HOST: "db"
PMA_USER: "root"
PMA_PASSWORD: "123123"
将 docker-compose.yml
文件放到对应的目录下,创建 /data/database/mysql
目录,然后运行命令 docker-compose up -d
, 本以为到此安装好了,但是 phpmyadmin
没有启动成功。
用 docker logs phpmyadmin
看到如下日志
这个错误通常是由于容器中运行的二进制文件与主机上的操作系统不兼容导致的。具体来说,这个错误可能是由于以下原因引起的:
- 容器镜像不兼容:容器镜像可能是在不同的操作系统或架构上构建的,这可能导致在特定的环境中无法运行。
- 二进制文件不兼容:容器中的二进制文件可能是与主机上的操作系统不兼容的版本。
这里应该想到 image: phpmyadmin/phpmyadmin
镜像可能不是 ARM 64 镜像,要解决这个问题,这要找到 ARM 64 镜像,从 Explore Docker's Container Image Repository | Docker Hub
找到能支持 ARM 64 的phpmyadmin 镜像,修改。
再次 docker-compose up -d
启动,在浏览器输入对应的 https://你的ip:8081
就可以看到 phpmyadmin
管理页面。
发表回复