docker 部署mysql

mysql dockerfile  官方地址https://github.com/docker-library/mysql

 

先介绍利用的两个数据卷挂载的规则,这对于理解挂载mysql数据库存储非常有帮助。

  1. 如果挂载一个空的数据卷到容器中的一个非空目录中,那么这个目录下的文件会被复制到数据卷中。
  2. 如果挂载一个非空的数据卷到容器中的一个目录中,那么容器中的目录中会显示数据卷中的数据。如果原来容器中的目录中有数据,那么这些原始数据会被隐藏掉。

mysql数据库物理存储位置/var/lib/mysql

步骤:

1.拉取镜像

$docker pull mysql:5.7

2.创建数据卷

# 创建数据卷
docker volume create my-vol(数据卷名称)
# 查看已有的数据卷
docker volume ls
#查看数据卷信息
docker volume inspect my-vol(数据卷名称)
# 删除数据卷
docker volume rm my-vol(数据卷名称)

3.运行容器

$docker run -d --name mysql -v my-vol:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root -p 3306:3306 mysql:5.7
-d : --detach,后台运行。 
--name : 为你的镜像创建一个别名,该别名用于更好操作。
-h : 用户名称
-p : 映射端口,一般我们会将默认端口进行更改,避免与本机的mysql端口冲突,如果你宿主机有mysql,请更改端口,如 -p 3307:3306。
-e : 环境变量。为mysql的root用户设置密码为root。
-v : 指定数据卷,意思就是将mysql容器中的/var/lib/mysql(这个是数据库所有数据信息文件)映射到宿主机/data/mysql里面。

mysql环境变量配置

MYSQL_ROOT_PASSWORD

此变量是必需的,并指定将为MySQL root超级用户帐户设置的密码。在上面的例子中,它被设置为my-secret-pw

MYSQL_DATABASE

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

MYSQL_USER, MYSQL_PASSWORD

这些变量是可选的,可以结合使用来创建新用户并设置该用户的密码。此用户将被授予MYSQL_DATABASE变量指定的数据库的超级用户权限(参见上文)。这两个变量都是创建用户所必需的。

请注意,不需要使用此机制来创建根超级用户,默认情况下会使用MYSQL_ROOT_PASSWORD变量指定的密码创建该用户。

MYSQL_ALLOW_EMPTY_PASSWORD

这是一个可选变量。设置为yes允许以root用户的空密码启动容器。注意yes建议不要将此变量设置为,除非您确实知道自己在做什么,因为这会使您的MySQL实例完全不受保护,从而允许任何人获得完整的超级用户访问权限。

MYSQL_RANDOM_ROOT_PASSWORD

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

MYSQL_ONETIME_PASSWORD

初始化完成后,将root(不是MYSQL_USER!中指定的用户)设置为已过期,在首次登录时强制更改密码。注意:仅在MySQL 5.6+上支持此功能。在MySQL 5.5上使用此选项将在初始化期间抛出适当的错误。



允许远程连接

连接mysql,进行设置即可

mysql -u root -P 3307 -h 127.0.0.1 -p root;
mysql>GRANT ALL PRIVILEGES ON *.* TO 'root'@'%' IDENTIFIED BY 'password' WITH GRANT OPTION;

这里又不得不提数据卷的特性,生命周期独立于容器,意味着我们可以创建新的mysql容器,只需要指定同一个数据卷就可以了。
至此简单的利用docker部署了一个简单的mysql容器,如果需要更个性化的conf,配置即可。

redis:

$ docker pull redis
$ docker run --name redis -d -p 6379:6379 redis

  

转载于:https://www.cnblogs.com/yoyo1216/p/10978339.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值