MySQL Docker – 两个 MySQL Docker 镜像的区别

MySQL Docker – 两个 MySQL Docker 镜像的区别

MySQL Docker 镜像是使用 Docker 技术构建的 MySQL 服务器实例。目前,Docker Hub 上提供了多个不同的 MySQL Docker 镜像。其中,就有两个比较流行的镜像:mysql/mysql-servermysql:latest。那么,这两个 MySQL Docker 镜像有什么区别呢?

阅读更多:MySQL 教程

mysql/mysql-server 镜像

mysql/mysql-server 镜像是基于 Oracle 官方的 MySQL 镜像构建的。该镜像是官方推荐使用的 MySQL Docker 镜像之一。该镜像默认使用 UID 1001 和 GID 0 的用户运行 MySQL 服务器实例,该用户不具有系统权限。如果需要操作系统权限(例如更改文件夹权限等),需要使用 root 权限进入容器。

创建 mysql/mysql-server 容器的命令:

docker run -d \
--name mysql-server \
-e MYSQL_ROOT_PASSWORD=<password> \
mysql/mysql-server:latest

其中参数解释:

  • -d:指定容器在后台运行
  • --name:指定容器的名称
  • -e:设置容器的环境变量,这里设置了 MySQL 的 root 密码

mysql:latest 镜像

mysql:latest 镜像是 MySQL 官方提供的 Docker 镜像。该镜像是从源代码构建的,包含了所有的 MySQL 功能。默认情况下,该镜像使用 root 用户来运行 MySQL 服务器实例,具有操作系统权限。可以通过user参数设置使用其他用户运行MySQL。

创建 mysql:latest 容器的命令:

docker run -d \
--name mysql-server \
-e MYSQL_ROOT_PASSWORD=<password> \
mysql:latest

其中参数解释与上面的mysql/mysql-server 镜像类似。

区别

两个镜像的主要区别在于基础镜像的不同:mysql/mysql-server 是基于 Oracle 官方的 MySQL 镜像构建的,而 mysql:latest 是从源代码构建的。

此外,两个镜像默认运行 MySQL 实例的用户也有所不同。mysql/mysql-server 镜像默认使用 UID 1001 和 GID 0 的用户运行 MySQL 服务器实例,而 mysql:latest 镜像默认使用 root 用户。这也意味着,使用 mysql/mysql-server 镜像时需要注意容器内的用户权限问题,而使用 mysql:latest 镜像时则需要注意在容器内如何使用 root 权限。

另外,mysql/mysql-server 镜像还提供了一些方便的脚本和工具,例如 mysqlroutermysqldump,而 mysql:latest 镜像则不包含这些附加工具。

总结

在选择 MySQL Docker 镜像时,需要看自己的实际情况需求。如果需要更多的方便工具和脚本,建议选择 mysql/mysql-server 镜像;如果不需要这些工具,同时也需要使用 root 权限操作,那么 mysql:latest 镜像可能是更为合适的选择。

Camera课程

Python教程

Java教程

Web教程

数据库教程

图形图像教程

办公软件教程

Linux教程

计算机教程

大数据教程

开发工具教程