环境配置
vbox
centos7.9
docker(已经配置阿里镜像源)
首先
拉取MySQL镜像
docker pull mysql:版本号
版本号不打也可以,会默认下载最新版(latest)
下载后使用docker images
查看镜像
如图我下载了MySQL5.7/8.0/latest版本
然后执行下面的命令就可以启动(运行)容器了
docker run -d -p 3306:3306 \ run运行容器 -d 后台运行 -p 端口映射
> --name mysql5.7 \ 命名
> -v ~/mydata/mysql/log:/var/log/mysql \ 挂载目录 宿主机文件路径 : 容器文件路径 /xx/xx/xx:/xx/xxx
> -v ~/mydata/mysql/data:/var/lib/mysql \ 如果是 xx:/xx/xxx则属于数据卷映射 在最后解释
> -v ~/mydata/mysql/conf:/etc/mysql \
> -e MYSQL_ROOT_PASSWORD=123456 \ 设置MySQL的root用户密码
> --privileged=true \ 让容器获得宿主机的root权限 我个人认为很重要,不然很容易无法正常运行容器,当然这是我的问题,酌情添加
> -d mysql:5.7 选择镜像版本
其中 ~/mydata/../..中 ~ 的意思是本地目录,避免挂载到根目录(/)上
命令docker ps -a
查看容器
如图 up 表示运行就没什么大问题
命令docker exec -it 容器名 /bin/bash
进入容器
mysql -u root -p
后输入密码进入MySQL
show databases;
查看数据库 ,如果一切如图所示,就没什么问题了
最后解释一下挂载目录和数据卷映射的区别
挂载目录是将宿主机中的文件内容覆盖到容器中 比如开始宿主机为0 容器为1 目录挂载后 宿主机和容器均为 0
而数据卷映射是容器中的文件重写一个到宿主机中 开始宿主机中为0 容器为1 卷映射后 宿主机和容器均为 1
不过卷映射的文件不能直接ls (-a)
出来 需要使用命令docker volume ls
来查看
如下图是三个数据卷