每次使用#sudo 太麻烦,使用su root 命令切换到root账号,密码为:vagrant
docker search mysql
docker pull mysql:5.7
等待下载完成后,我们就可以在本地镜像列表里查到REPOSITORY为mysql,标签为5.7的镜像。
docker images
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=root \ -d mysql:5.7
参数说明:
docker run : 启动docker容器
-p 3306:3306 将mysql容器的3306端口映射到linux主机的3306端口,访问linux的3306就能访问到mysql的3306
-name mysql : 给当前容器取name
\ : 换行
-v /mydata/mysql/log:/var/log/mysql \ : 将日志文 件挂载到主机
-v /mydata/mysql/data:/var/lib/mysql \ :将mysql数据挂载到主机
-v /mydata/mysql/conf:/etc/mysql \ :将配置文件挂载到主机
-e MYSQL_ROOT_PASSWORD=root \ :初始化root 用户的密码
使用 docker ps 查看docker中正在运行的容器
docker ps
使用navicate测试连接当前 mysql服务
根据上面查出来的mysql容器ID 或者NAMES 并通过以下命令进入mysql容器交互模式
docker exec -it mysql /bin/bash
进入mysql容器内部后,使用 ls 命令查看当前文件目录
可以发现,当前目录就是一个完整的linux目录结构,mysql被安装到了当前的linux容器中,可以理解为mysql容器就是一个小小的单独的完整的linux
mysql -uroot -p
MySQL的默认编码是Latin1,不支持中文,所以需要手动修改默认编码
修改配置文件,配置文件在etc/mysql/mysql.conf.d/mysql.cnf这个文件里头