docker安装MySQL
Posted 王思琪^
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了docker安装MySQL相关的知识,希望对你有一定的参考价值。
实战:安装MySQL
思考:mysql的数据持久化的问题
#获取镜像
docker pull mysql:5.7
#运行容器,需要做数据挂载
#安装启动MySQL,需要配置密码(docker Hub)
#官方测试
docker run --name some-mysql -e MYSQL_ROOT_PASSWORD=my-secret-pw -d mysql:tag
#启动
-d 后台运行
-p 端口映射
-v 卷挂载
-e 环境配置
--name 容器名字
docker run -d -p 3310:3306 -v /home/mysql/conf:/etc/mysql/conf.d -v /home/mysql/data:/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 --name mysql:5.7
#启动成功之后,我们在本地使用sqlyog来接测试一下
#sqlyog-连接到服务器的3310 ---3310和容器内的3306映射,这个时候我们就可以连接上了!
#在本地测试创建一个数据库,查看一下我们映射的路径是否OK
假设我们将容器删除
发现我们挂载到本地的数据库依旧没有丢失,这就实现了容器数据持久化功能!!!
#匿名挂载
-v 容器内路径
docker run -d -P --name nginx01 -v /ect/nginx nginx
#查看所有volume(卷)的情况
docker volume ls
local 9f3824568faal78afcce54db0be99d4ddd6870bcece72d2b7ed061
#这里发现,这种就是匿名挂载,我们在-v的时候只写了容器内的路径,没有写容器外的路径
#具名挂载
#通过-v 卷名:容器内路径
#查看一下这个卷
所有的docker容器内的卷,没有指定目录的情况下都是在'/var/lib/docker/volumes/xxxx/_data'
我们通过具名挂载可以方便的找到我们的一个卷,大多数情况在使用的具名挂载!
那么,我们如何确定是具名挂载还是匿名挂载,还是指定路径挂载?
-v 容器内路径 #匿名挂载
-v 卷名:容器内路径 #具名挂载
-v /宿主机路径::容器内路径 #指定路径挂载
拓展:
#通过 -v 容器内路径,ro rw 改变读写权限
ro readonly #只读
rw readwrite #可读可写
#一旦这个设置了容器权限,容器对我们挂载出来的内容就有限定了
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:ro nginx
docker run -d -P --name nginx02 -v juming-nginx:/etc/nginx:rw nginx
#ro 只要看到ro就说明这个路径只能通过宿主机来操作,容器内部是无法操作的
以上是关于docker安装MySQL的主要内容,如果未能解决你的问题,请参考以下文章