龙空技术网

Mysql-Docker镜像配置详解

程序猿囧途 131

前言:

而今你们对“mysql镜像”可能比较看重,大家都想要分析一些“mysql镜像”的相关内容。那么小编在网上网罗了一些关于“mysql镜像””的相关文章,希望我们能喜欢,朋友们一起来了解一下吧!

MySQL是一种广泛使用的开源关系数据库管理系统(RDBMS)。

docker-mysql

应用示例启动一个mysql容器

docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:version

使用自定义mysql配置文件

MySQL的默认配置/etc/mysql/my.cnf,其中可以包含!includedir其他目录,例如/etc/mysql/conf.d或/etc/mysql/mysql.conf.d。

如果/my/mysql/conf.d你自定义的mysql配置文件,则可以直接挂载到mysql容器中:

docker run --name some-mysql -v /my/mysql/conf.d:/etc/mysql/conf.d -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:version

MySQL实例启动会加载/etc/mysql/my.cnf和/etc/mysql/conf.d/下面的所有配置文件,并采取优先次序设置。

持久化

MySQL默认的数据库存储目录是/var/lib/mysql,您可以通过挂载本机目录覆盖此目录,来达到持久化的效果

docker run --name some-mysql -v /my/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:version

以非root用户启动容器

docker run --user 1000:1000 --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:version

可用的环境变量(首次启动)

启动mysql镜像时,可以通过在docker run命令行设置一个或多个环境变量来调整MySQL实例的配置。

请注意,如果使用已包含数据库的数据目录启动容器,则以下任何变量都将无效:容器启动时,任何现有数据库都将保持不变。

MYSQL_ROOT_PASSWORD

必须,设置root用户密码

MYSQL_DATABASE

可选,允许您指定在映像启动时要创建的数据库的名称。如果提供了用户名/密码(请参阅下文),则将授予该用户对该数据库的超级用户访问权限(与相对应GRANT ALL)。

MYSQL_USER, MYSQL_PASSWORD

可选,创建一个用户并指定密码。这两个变量都是创建用户所必需的。

请注意,不能使用此变量来创建root用户

MYSQL_ALLOW_EMPTY_PASSWORD

可选。设置为yes则允许root用户的密码为空。

MYSQL_RANDOM_ROOT_PASSWORD

可选。设置yes则为root用户生成一个随机的初始密码(使用pwgen)。生成的root密码将被打印到stdout(GENERATED ROOT PASSWORD: .....)。

MYSQL_ONETIME_PASSWORD

初始化完成后,将root用户(不是MYSQL_USER!中指定的用户)设置为过期用户,从而在首次登录时强制更改密码。注意:仅MySQL 5.6+支持此功能。

标签: #mysql镜像