在学习了上一节linux 安装 docker后,这一节我们来学习如何在 docker 中安装 MySQL
示例中:MySQL 版本为 5.7
1. 检查当前所有 docker 下载的镜像
1 | docker images |
如下图所示,我们在上一节安装了一个hello-world
镜像:
2. 在 docker 仓库中搜索 mysql 的镜像:
1 | docker search mysql |
下载镜像:
1 | docker pull mysql |
先别下载!,因为它默认是下载最新版本,所以我们这里指定版本 5.7,即为docker pull mysql:5.7
操作如下所示:
3.查看是否下载成功
1 | docker images |
如图所示,有 MySQL5.7 即为下载成功~
4.启动 mysql 容器
1 | docker run -p 3306:3306 --name mysql -v /mydata/mysql/log:/var/log/mysql -v /mydata/mysql/data:/var/lib/mysql -v /mydata/mysql/conf:/etc/mysql -e MYSQL_ROOT_PASSWORD=root123 -d mysql:5.7 |
参数说明:
-p 3306:3306
:将容器的 3306 端口映射到本地的 3306 端口--name mysql
:容器名称-v /mydata/mysql/log:/var/log/mysql
:将容器的日志文件夹挂载到本地-v /mydata/mysql/data:/var/lib/mysql
:将容器的配置文件夹挂载到本地-v /mydata/mysql/conf:/etc/mysql
:将容器的配置文件夹挂载到本地-e MYSQL_ROOT_PASSWORD=root123
:初始化 root 用户的密码-d mysql:5.7
:指定镜像
5.查看是否启动成功
1 | docker ps |
发现是 Exited 状态,也就是启动失败了:
输入docker log mysql
查看一下日志
解决办法
在查阅一番资料后,有了解决办法:
1 | 宿主机创建数据存放目录映射到容器 |
然后,重新启动 MySQL 容器,应该可以正常启动了。
1 | docker restart mysql |
现在再来进行 docker ps
,可以看到运行成功了:
6.进入容器
1 | docker exec -it mysql bash |
注意,上面的 mysql 替换成你自己的容器名,在图 6 中,容器名为 NAMUES 下的
mysql
7.登录 MySQL
1 | mysql -u root -p root123 |
这里的密码是我们创建容器的时候设置的,在第 4 步,忘记的可以去看第 4 步那个密码。
创建用户并开启远程登录
- 方法 1:给子用户开启所有数据库权限
下面是创建用户并开启远程登录的命令:(请注意,如果你不想这个账号对所有的数据库都有权限,可以用另一种方法)
1 | 创建test账号,密码为test123 |
- 方法 2:给子用户开启部分数据库权限
1 | 创建test账号,密码为test123 |
8.退出容器
1 | exit |
9.docker 常用命令
1 | 删除容器(参数可以是容器名称或容器ID) |
11.dockerfile
将上述正确的步骤总结为 dockerfile:
TODO
1 | FROM mysql:5.7 |
__END__