一、下载mysql镜像
docker pull mysql
二、 运行mysql镜像
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/conf:/etc/mysql \ //etc目录存放mysql的配置文件
-v /usr/local/docker/mysql/logs:/var/log/mysql \ //var是存放数据文件的,包括日志
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \ //-e , environment 配置环境变量,可以在这里设置密码
-d mysql:5.7.22 //-d, daemon 守护线程,可以以守护态运行
(至此可以运行mysql,看是否连接成功。。。)
注意:conf是MySQL的配置目录!
data是MySQL的数据目录!
logs是MySQL存放日志的目录!
上面运行命令中,“:”左边是宿主机的MySQL相关文件的存放目录,右边是容器的MySQL镜像相关的文件存放目录!
进入conf目录下啥也没有,就用镜像自带的配置——》
删除上述命令第二行,敲回车
docker run -p 3306:3306 --name mysql \
-v /usr/local/docker/mysql/logs:/var/log/mysql \ //var是存放数据文件的,包括日志
-v /usr/local/docker/mysql/data:/var/lib/mysql \
-e MYSQL_ROOT_PASSWORD=123456 \ //-e , environment 配置环境变量,可以在这里设置密码
-d mysql:5.7.22
重新启动,以交互的方式(docker exec -it mysql bash)进入容器
三、配置数据卷
将容器里面的数据复制(cp)到数据卷
可以新开一个连接进入容器查看mysql的文件,发现全在一个mysql文件夹里面,于是把这个mysql文件夹复制出来放到"root@Ubuntu:/usr/local/docker/mysql/config#
再移动到上一级的mysql文件夹并删除空的conf文件夹
断开原来的容器 docker rm -f [CONTAINER ID]
复制粘贴第二步骤中带配置的运行命令来重新启动mysql容器
测试数据卷里面的数据是否生效,
把data文件夹删除,保留conf和logs文件夹
docker restart mysql 重启mysql容器
运行mysql软件发现打不开,原因是data不存在了,所以重复第二步运行容器,刷新mysql软件的数据库,发现数据卷里面的数据库生效了!即可实现部署!